Improved interface and implementation

- added abstract `handle` method in Handler class
- added end-of-chain check in concrete handlers