Lots of scratch work on promises
I hope this works