Avoid mutex for Error.message (it is considered thread-safe)
Use a sensible string representation for structs
Callbacks receive their structs by reference not as raw pointers