look i know its lazy but it works on and offline

so sue me i'll rename these callbacks tomorrow