refactor strategy