Extracted move processing from board class