Actually, a bunch of this seems out of date given all the promises refactoring I've been doing. For one, the way callbacks work has changed a lot. There might be an exciting merge conflict brewing in front of us.