 import Material
 import Kingfisher
 import StretchHeader
-
-class ProgramDetailTableViewController: UITableViewController {
+import JTMaterialTransition
+
+class ProgramDetailTableViewController: UITableViewController, UIViewControllerTransitioningDelegate {
 
 	// MARK: - Instance fileds
 

		stretchHeaderView.layout(stretchHeaderView.imageView).horizontally().height(220)
		stretchHeaderView.layout(infoView).bottom().horizontally()

	}

	// MARK: - Event handler

	func handlePlayButton() {
		let videoPlayViewController = self.storyboard!.instantiateViewControllerWithIdentifier("VideoPlayerViewController") as! VideoPlayerViewController
		videoPlayViewController.program = program
		self.presentViewController(videoPlayViewController, animated: true, completion: nil)
	}

	// MARK: - View deinitialization


		// Setup stretch header view
		infoView = NSBundle.mainBundle().loadNibNamed("VideoInformationView", owner: self, options: nil).first as! VideoInformationView
		infoView.frame = self.view.frame
		infoView.setup(program)

		stretchHeaderView = StretchHeader()


		// Place play button
		playButton = FabButton()
		playButton.backgroundColor = MaterialColor.red.darken3
		playButton.setImage(UIImage(named: "ic_play_arrow_white"), forState: .Normal)
		playButton.setImage(UIImage(named: "ic_play_arrow_white"), forState: .Highlighted)
		playButton.tintColor = UIColor(white: 0.9, alpha: 0.9)
		playButton.addTarget(self, action: #selector(handlePlayButton), forControlEvents: .TouchUpInside)

		// Setup player view transition
		transition = JTMaterialTransition(animatedView: playButton)

		// Preview image downloader
		do {
			let request = ChinachuAPI.PreviewImageRequest(id: program.id)
			let urlRequest = try request.buildURLRequest()
