A Move now takes a NonEmptyList to avoid the explosions which would be caused by an empty list