reworked callbacks, messed everything up