public function get($property)
        {
            if (!is_string($property) || empty($property)) {
                throw new Exception(
                        'Invalid argument: $property must be a non-empty string');
            }

            $method = 'get' . self::_normalizePropertyName($property);

            if (method_exists($this, $method)) {
                return $this->$method();
            } elseif (isset($this->_properties[$property])) {
                return $this->_properties[$property];
            }

            return null;
        }