WIP: module refactor
WIP: module refactor
a more modular approach