Lots of refactoring and architectural changes.