    # ----
    # TODO: This could all be a lot more succinct, and prettier.
    parameterizable: (klass) ->
-      klass.with = (_) ->
+      klass.with = (opts) ->
          it = construct this, klass
-         it.with _
+         it.with opts
          bound = klass.bind(it)
-         utilities.infect bound, klass
-         bound._ = _
+         _.assign bound, klass
+         bound.prototype = klass.prototype
+         bound._ = opts
          process.nextTick => delete bound._
          bound
          

module.exports =
utilities =
   
   # Third-order function to pass-through the arguments to the first-order body
   passthrough: passthrough =

            .apply this, arguments
   
   
   infect: (globals, wif = utilities) -> _.assign globals, wif
