def assoc(name, type = nil, description = nil, **kwargs, &block)
        if @_associations.map(&:name).include?(name)
          fail AttributeError, "Association #{name} is already defined"
        else
          @_associations <<