           extendFilter aClass, AbilityClass, vFilter
           if vAddtionalAbilityInjected
             aClassPrototype = vAddtionalAbilityInjected::
-          if !vParentHasAbility
+          if !vInjectedOnParent
             extendFilter aClassPrototype, AbilityClass::, vFilter
           filterMethods aOptions.methods
           filterMethods aOptions.classMethods
         if aOptions?
-          if !vParentHasAbility and aOptions.methods instanceof Object
+          if !vInjectedOnParent and aOptions.methods instanceof Object
             injectMethods(aClassPrototype, aOptions.methods, aOptions)
           if aOptions.classMethods instanceof Object
             injectMethods(aClass, aOptions.classMethods, aOptions)

defineProperty  = require('util-ex/lib/defineProperty')
getNonEnumNames = require('util-ex/lib/get-non-enumerable-names')

hasAbilityOnParent  = require('./has-ability-on-parent')


injectMethodsFromNonEnum = (aTargetClass, aObject, filter)->

          extendFilter aClass, AbilityClass, (k)-> not (k in vExcludes)
          if vAddtionalAbilityInjected
            aClassPrototype = vAddtionalAbilityInjected::
          if !vInjectedOnParent
            vExcludes = injectMethodsFromNonEnum aClassPrototype, AbilityClass::
            extend aClassPrototype, AbilityClass::, (k)-> not (k in vExcludes)
        else
