fusion module refactor