public function get ($name)
	{
		
		// If the attribute doesn't exists
		
		if (!$this->attributeExists ($name))
		{
			throw new Exception (get_called_class () . '->' . $name . ' attribute does not exist!');
		}
		
		// If attribute getter isn't set or is disabled
		
		if (!$this->attributeGet ($name))
		{
			throw new Exception (get_called_class () . '->' . $name . ' attribute get is disabled!');
		}
		
		// If no attribute value is set
		
		if (!$this->attributeHasValue ($name))
		{
			
			// If there is a default set to value
			
			if (array_key_exists ('default', static::$attributes[$name]))
			{
				$this->iset ($name, static::$attributes[$name]['default'], FALSE);
			}
			
			// Else there is no value and no default
			
			else
			{
				throw new Exception (get_called_class () . '->' . $name . ' attribute isn\'t set and has no default value!');
			}
			
		}
		
		// Return value
		
		return $this->attributeValues[$name];
			
	}