Replace callbacks with promises. Yay.