abstract_strategy refactor
minor refactor