public function mapData(array $attributes)
    {
        if (!$this->isSuperType)
        {
            return $this->newInstance();
        }
        else
        {
            if (!isset($attributes[$this->typeField]))
            {
                throw new \DomainException($this->typeField . ' not present in the records of a Super Model');
            }
            else
            {
                $class = $this->getClass($attributes[$this->typeField]);
                return new $class;
            }
        }
    }