Split app into separate modules
- gui for frontend
- engine for backend
- protocol for comms in between
- wanderlust for driver
- more flexible, decoupled