Lots of work on structuring the codebase