tried to set up callbacks and stuff