added valid_move boolean method to encapsulate that logic