Finished porting to promises