modules refactoring (1)