refactoring module structure