refactor Module