Updated classes to control more flow deciding move validity