Add support for Delegation Handler

Squashed commits. For history, refer to #229