refactoring tactical funciton