public function execute($result = 'obj')
    {
        $this->settings['result'] = $result;

        $type = strtolower($this->settings['type']);

        switch ($this->settings['type']) {
            case 'SELECT':
                $params = [
                    $this->settings['columns'],
                    $this->settings['table'],
                    $this->settings['where'],
                    $this->settings['order'],
                    $this->settings['limit'],
                    $this->settings['statements'],
                    $this->settings['result'],
                ];
                break;
            case 'INSERT':
                $params = [
                    $this->settings['table'],
                    $this->settings['data'],
                    $this->settings['statements'],
                ];
                break;
            case 'UPDATE':
                $params = [
                    $this->settings['table'],
                    $this->settings['data'],
                    $this->settings['statements'],
                    $this->settings['where'],
                ];
                break;
            case 'REPLACE':
                $params = [
                    $this->settings['table'],
                    $this->settings['data'],
                    $this->settings['statements'],
                ];
                break;
            case 'DELETE':
                $params = [
                    $this->settings['table'],
                    $this->settings['statements'],
                    $this->settings['where'],
                ];
                break;
            case 'CREATE':
                $params = [
                    $this->settings['table'],
                    $this->settings['data'],
                    $this->settings['foreing'],
                    $this->settings['reference'],
                    $this->settings['on'],
                    $this->settings['actions'],
                    $this->settings['engine'],
                    $this->settings['charset'],
                ];
                break;
            case 'TRUNCATE':
                $params = [
                    $this->settings['table'],
                ];
                break;
            case 'DROP':
                $params = [
                    $this->settings['table'],
                ];
                break;
        }

        $provider = [$this->provider, $type];

        $this->response = call_user_func_array($provider, $params);

        $this->reset();

        return $this->getResponse();
    }