   
   udefine.inject.modules = {}
   
-  udefine.inject.add = (name) -> udefine.inject.modules[name] = undefined
-  udefine.inject.remove = (name) -> delete udefine.inject.modules[name]
+  udefine.inject.add = (name) -> 
+    udefine.inject.modules[name] = undefined
+    @
+
+  udefine.inject.remove = (name) -> 
+    delete udefine.inject.modules[name]
+    @
     
-  udefine.inject.clear = -> udefine.inject.modules = {}
+  udefine.inject.clear = -> 
+    udefine.inject.modules = {}
+    @
   
   # TODO: Reflect if these two object could and should be merged together
   # Dependencies for browser (global object)

# Root object hook
# Use udefine in the closure and then bind to the specific objects afterwards
do (root = if hasModule then {} else this) ->
  platform = if hasModule then 'commonjs' else 'globals'
  
  # Helper function to resolve a module (either function or object)

    globals: {}
    commonjs: {}
  
    add: (name, all) ->
      if all
        udefine.modules[p][name] for p in platforms
      else
        udefine.modules[platform][name]
        
      @
    remove: (name) -> 
      if Object.hasOwnProperty.call udefine.modules.globals, name
        delete udefine.modules['globals'][name]
        
      if Object.hasOwnProperty.call udefine.modules.commonjs, name
        delete udefine.modules['commonjs'][name]
        
      @
    
    get: ->
    set: ->
