             assert threads = _.map hierarchy, resolve
             methods = _.filter threads, _.isFunction
             prepped = _.toArray _.unique methods
-            applied = _.map prepped, (fn) -> fx fn
+            applied = _.map prepped, (fn) -> fxc fn
             bounded = callback?.bind(this) or (->)
             return async.series applied, bounded
 

    # Use `async` error propagation mechanism to break out of stream.
    Object.defineProperty Object::, "upstream",
        enumerable: no, value: (def) -> (args...) =>
            fx = (f) => (a...) => f.apply @, cc(a)
            cc = (a) -> _.toArray(args).concat(a)
            malformed = "no POJO style definition"
            assert _.isPlainObject def, malformed
            assert targeted = _.head _.keys def

    # Use `async` error propagation mechanism to break out of stream.
    Object.defineProperty Object::, "downstream",
        enumerable: no, value: (def) -> (args...) =>
            cca = (a) -> _.toArray(args).concat(a)
            fxc = (f) => (a...) => f.apply @, cca(a)
            malformed = "no POJO style definition"
            assert _.isPlainObject def, malformed
            assert targeted = _.head _.keys def
