combat module needs refactoring