WIP: module refactor