public function select($select)
    {
        if (is_array($select) === true) {
            $this->select = '';
            foreach ($select as $key => $elem) {
                $this->select .= $elem;
                if (is_numeric($key) === false) {
                    $this->select .= ' AS ' . $key;
                }
                $this->select .= ', ';
            }
            $this->select = substr($this->select, 0, -2);
        } elseif (! is_string($select)) {
            throw new InvalidArgumentException(sprintf(
                'Argument 1 passed to %s must be an array or string!',
                __METHOD__
            ));
        } else {
            $this->select = $select;
        }

        return $this;
    }