Feature/module refactor