How do you structure mobile architecture so the codebase is testable at scale and supports automated testing?