public function get($key)
    {
        $allowed = array_diff(array_keys(get_class_vars(get_class($this))), $this->_hidden);
        if (empty($allowed) || !empty($allowed) && in_array($key, $allowed)) {
            if (method_exists($this, 'get' . ucfirst($key))) {
                return call_user_func_array([$this, 'get' . ucfirst($key)], [$key]);
            }

            return $this->{$key};
        }

        return null;
    }