     fileprivate var contentView = UIView()
     fileprivate var backButton = UIButton(type: .custom)
 
+    // All views that would participate entrance animation
+    fileprivate var entranceAnimationViews = [DetailEntranceAnimation]()
+    
     // Hero photo view
     var heroPhotoView : UIImageView {
         return photoSection.photoView

            nextY += section.height
            
            section.isHidden = !(section.height > 0)
            if section.height != 0 {
                nextY += sectionGap
            }
        }

    }
    
    func entranceAnimationWillBegin() {
        initializeSections()
        for view in entranceAnimationViews {
            view.entranceAnimationWillBegin()
        }
    }
    
    func performEntranceAnimation() {
        for view in entranceAnimationViews {
            view.performEntranceAnimation()
        }
    }
    
    func entranceAnimationDidFinish() {
        for view in entranceAnimationViews {
            view.entranceAnimationDidFinish()
        }
    }
    
    func desitinationRectForProxyView(_ photo: PhotoModel) -> CGRect {
