Phase 2 of reorganization (WIP - DO NOT MERGE)

This is a follow on to #40 and will need to be rebased once #40 is merged