major changes for callback functions