Cleanup internal callback type names
Restructure code for better maintainability
Fix documentation errors
Add documentation for errors