Allow a callback to passed to read