         // if so, remove currentCardViewController centerX constraint
         // add center x constraint to previousCardViewController
         var newPreviousCardViewController: PlaceDetailsCardViewController? = nil
+        var springDamping: CGFloat = 1.0
+
+        var constraintsToActivate = [NSLayoutConstraint]()
+        var constraintsToDeactivate = [NSLayoutConstraint]()
 
         // add the image carousel for the previous place card underneath the existing carousel
         // we need to ensure these constraints are applied and rendered before we animate the rest, otherwise we end
         // up with a very odd looking fade transition
         let previousCardImageCarousel = previousCardViewController.imageCarousel
         view.insertSubview(previousCardImageCarousel, belowSubview: imageCarousel)
-        NSLayoutConstraint.activate([previousCardImageCarousel.topAnchor.constraint(equalTo: view.topAnchor),
+        constraintsToActivate += [previousCardImageCarousel.topAnchor.constraint(equalTo: view.topAnchor),
                                      previousCardImageCarousel.leadingAnchor.constraint(equalTo: view.leadingAnchor),
                                      previousCardImageCarousel.trailingAnchor.constraint(equalTo: view.trailingAnchor),
-                                     previousCardImageCarousel.heightAnchor.constraint(equalToConstant: 240)], translatesAutoresizingMaskIntoConstraints: false)
-        view.layoutIfNeeded()
-
-
-        var constraintsToActivate = [NSLayoutConstraint]()
-        var constraintsToDeactivate = [NSLayoutConstraint]()
-
-        // deactivate and remove current view controller center constraint
-        if let currentCardViewCenterXConstraint = currentCardViewCenterXConstraint {
-            constraintsToDeactivate += [currentCardViewCenterXConstraint]
-        }
-        self.currentCardViewCenterXConstraint = previousCardViewController.cardView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor)
-        constraintsToActivate += [self.currentCardViewCenterXConstraint!]
-        // deactivate and remove next view controller leading constraint
-        if let nextCardViewLeadingConstraint = nextCardViewLeadingConstraint {
-            constraintsToDeactivate += [nextCardViewLeadingConstraint]
-        }
-        self.nextCardViewLeadingConstraint = currentCardViewController.cardView.leadingAnchor.constraint(equalTo: previousCardViewController.cardView.trailingAnchor, constant: 6)
-        constraintsToActivate += [self.nextCardViewLeadingConstraint!]
+                                     previousCardImageCarousel.heightAnchor.constraint(equalToConstant: imageCarouselHeightConstant)]
+
         // create new previous view controller trailing constraint
         if let previousCardViewTrailingConstraint = previousCardViewTrailingConstraint {
             constraintsToDeactivate += [previousCardViewTrailingConstraint]


    var imageCarousel: UIView!

    init(place: Place) {
        self.currentCardViewController = PlaceDetailsCardViewController(place: place)
        super.init(nibName: nil, bundle: nil)

                self.currentCardViewController.cardView.removeGestureRecognizer(self.panGestureRecognizer)
                if let nextCardViewController = self.nextCardViewController {
                    nextCardViewController.cardView.removeFromSuperview()
                    nextCardViewController.cardView.isHidden = false
                    nextCardViewController.removeFromParentViewController()
                    self.unusedPlaceCardViewControllers.append(nextCardViewController)
                }
