refactor opponents