refactoring combat module