Ditch callbacks and go promise only