module dependency management

decided it was worth it due to advantages downstream