Added interfaces for custom pickup/putdown behaviour.
Implemented pickup/putdown hooks.
Added support for IMC-based handler registering.
Fixed all the compile errors.