Callbacks are now JavaScriptExtensions:
- they have a shared state
- a delay
- can be canceled