Try to fix #14

event.fire now takes an optional keyword `callback` (method) which will be deleted from kwargs when firing the events and calls the `callback` method afterwards.