                 existing
             else
                 Proxy = association.getProxyFor(name)
-                new Proxy( association, association.getOptions(name, @)  )
+                if Proxy
+                    new Proxy( association, association.getOptions(name, @)  )
+                else
+                    null
 
     # will be called in the scope of the parent model
     createCollection: (association, name, definition, fk, pk, target_class) ->
         target_class ||= association.getClassFor(name)
+        return null unless target_class
         options = association.getOptions(name, this)
         options.filter ||= {}
         options.filter[fk] = this.get(pk)

        Lanes.u.findObject(object, 'Models', @klass::FILE)

    getProxyFor: (name) ->
        @proxy[name] ||= (
            Lanes.Models.AssocationProxy.construct( @getClassFor(name),
                association_pk: @pk(name)
                association_name: name
            )


    # will be called in the scope of the parent model
    createModel: (association, name, definition, fk, pk, target_class) ->
        if definition.required
            target_class ||= association.getClassFor(name)
            options = association.getOptions(name, this)
            model_id = this.get(pk)
