refactor module