added do_move and is_valid_move implementations in class board. might contain bugs