added event raising along side function callback
added the option to disable event raising
added the possibility to disable function callbacks
updated the events to return the same data supplied to callback functions