strategy working
refactor strategy