chain improvement

- more obvious that `handle` is abstract method in base Handler class
- end-of-chain check in concrete handler classes (so ordering in chain can be changed without changing handler method implementations)