Refactor-Derive:
Reafactored .derive() to allow for a function argument, also, when the returned constructor
is called, it will call internal to optional .init()  method within returned constructor.
Added a bind to .register() callbackst to handle scope.