experimental module refactoring