refactoring + salamander strategy