- Added tests for `#on` and `#off` methods
- Refactoring and cleanup