public static Selectable TargetForMoveDir(this Navigation navigation, MoveDirection direction) { return(direction.Map(MoveDirection.Up, navigation.selectOnUp) .Map(MoveDirection.Right, navigation.selectOnRight) .Map(MoveDirection.Down, navigation.selectOnDown) .Map(MoveDirection.Left, navigation.selectOnLeft)); }