result strategy refactoring