protected function getFields()
    {
        $fields = [];

        foreach ($this as $k => $v) {
            if (is_string($k) && strpos($k, '_') !== 0) {
                $fields[] = $k;
            }
        }

        foreach ($this->_fields as $k => $v) {
            if (is_string($k)) {
                $fields[] = $k;
            }
        }

        return $fields;
    }