One class per file
Fix class loaders
Switch to json webhook
Make return types consistent and use exceptions for errors