private function setRelationship(Vocal $record, $relationship, $class, $index)
    {
        // If we have an index we're dealing with a many relationship
        if ($index !== null)
        {
            $collection = ($this->{$relationship}) ? $this->{$relationship} : new Collection;
            $collection->put($index, $record);
            return $this->setRelation($relationship, $collection);
        }

        // belongsTo and morphTo become parent records via associate
        $model = $this->{$class}();

        if (method_exists($model, 'associate'))
        {
            return $model->associate($record)->forceSave();
        }
        else
        {
            return $this->setRelation($relationship, $record);
        }
    }