public function getAttribute($name)
    {
        $this->throwExceptionIfAttributeDosntExist($name);

        $class = get_class($this);
        if(isset(self::$attributeGetters[$class][$name]))
        {
            $methodName = self::$attributeGetters[$class][$name];
            return $this->$methodName();
        }
        else
        {
            return $this->getAttributeDirectly($name);
        }        
    }