change wrapping of handler

Change how the handler is wrapped so the Delayed object can just be
scalar derefenced to get the handler back.
check that delay was called with correct number of args