callbacks are hard if you don't know what callbacks are :)