refactor code, add _apply_strategy