         apply: (ident, options) ->
             ident = ident.identity?() or ident
 
-            if not @_checkRequired() then return
-
-            if not (n = @find(ident))
-                return
+            if not @_checkRequired()
+                return false
+
+            if not (n = @find(ident))
+                return false
 
             # No attributes, which means this is not valid
             if not (attrs = n.toJSON())
-                return
+                return false
 
             # Define upstream, this is idempotent
             u = @upstream.define(ident, n.path(), type: n.type)

            ident = ident.identity?() or ident

            if not (n = @find(ident))
                return

            if @_isRequired(n)
                @_triggerRequired [n.get('concept')]
                return

            if not @_checkRequired() then return

            if (u = @upstream.find(ident))
                u.set(enabled: false)

                @_triggerRequired [n.get('concept')]
                return false

            if not @_checkRequired()
                return false

            if (u = @upstream.find(ident))
                u.destroy()
