Added Handler registration

I do not think we should provide a block interface, better to keep the
API self contained and separated from the actual block implementations.