API allows for more control over callback to see why the callback was performed whilst maintaining backwards compatibility