Lots of documentation reading and refactoring.