Switch to symbol based callback system from definition-based
Currently the different callbacks are registered with a function type () => X
which is not straightforward to use and forces use of global functions.
For a more dynamic system use Symbol
to identify registered callbacks and to unregister them.