I don't really understand the upside of the callback. It adds an extra object that you need to allocate and extra indirection.