working on #6, make it modular!