adding isFunction to utils
adding some exceptions to this.on
adding more tests for on()