adding on callback wrapper