private static void Goto(Location destination, int duration, EasingFunction easing = null) { hw.DisplayDestination(destination.GetName()); elevator.Play(new ElevatorEffect()); var destFloor = destination.GetFloor(); if(easing == null) easing = new ExponentialEase(); var length = new TimeSpan(0, 0, 0, duration); var animator = new Animator { InitialValue = CurrentFloor, FinalValue = destFloor, EasingFunction = easing, Length = length, Set = SetCurrentFloor }; animator.Animate(); }