public function store($values = null)
    {
        static::applySchema();

        // update values before store
        if (is_array($values)) {
            foreach ($values as $field => $value) {
                $this->{$field} = $value;
            }
        }

        // if has primary update else insert
        $key = static::getPrimaryKey();
        if ($key && isset($this->{$key}) && $this->{$key}) {
            return $this->storeUpdate();
        }

        return $this->storeInsert();
    }