     "clazzy/Exception"
 ], (Class, Exception) ->
     'use strict'
-    
+    #return D
     mutator = () ->
     freeze = Object.freeze or () -> 
     _hitch = (that, func) ->
         if not that then func else () -> 
+            func = that[func] if typeof func is "string"
             func.apply(that, arguments || [])
 
     # A deferred provides an API for creating and resolving a promise.
-    Class "clazzy.Deferred", null, null
-        constructor: () -> 
+    Deferred = Class "clazzy.Deferred", null, null
+        constructor: () ->
             @canceller
             @result
             @finished

                progress = listener.progress
                progress and progress update
                listener = listener.next
            this
        addCallbacks: (callback, errback) ->
            @then callback, errback, mutator
            this

            @result = value
            @finished = true
            @notify()
            undefined
        notify: () -> 
            while(not mutated && @nextListener)
                listener = @nextListener
