refactoring/splitting in more modules