I'll look at implementing your changes shortly, perhaps after a rewrite to circumvent the blocking behaviour experienced with the callbacks.