add more strategies and better move validation