minimize classes
using design strategy
implemnt Diagonal move
merge conflict
merge to master