more modules and refactoring #www