more module refactoring