Implemented a bunch of onCancel and onComplete callbacks and implemented once( )