all callbacks should be optional, fixes #1
v1.0.4-3