Update codebase

Enforces a more modular approach.