Modular app

Closes #3