Did a bunch of work. There are still quite a few TODOs.