Clean up 'Cancel Request' implementation

- Added separate class to encapsulate the Request Callback List
- Cleaned up code