refactor the strategies a bunch