more module refactorization