return false when move is not valid