refactored modules structure