 
     override func viewDidLoad() {
         super.viewDidLoad()
-        
-        if UIDevice.current.userInterfaceIdiom == .pad {
-            self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: Loca.close, style: .done, target: self, action: #selector(dismissOrPopViewController))
-        }
+		
+		self.setupUI()
+		self.update(viewModel: self.viewModel)
     }
 
+	override func initialSetup() {
+		super.initialSetup()
+		
+		if UIDevice.current.userInterfaceIdiom == .pad {
+			self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: Loca.close,
+																	style: .done,
+																	target: self,
+																	action: #selector(dismissOrPopViewController))
+		}
+		
+		if #available(iOS 11.0, *) {
+			self.navigationItem.largeTitleDisplayMode = .never
+		}
+	}
+
 	// MARK: - UI
 
-	override func initialSetup() {
-		self.title = self.viewModel.shortTitle
-		
-		self.colorView.backgroundColor = UIColor(hex: self.viewModel.color)
-		
-		self.nameLabel.text = self.viewModel.longTitle
-		self.professorLabel.text = self.viewModel.professor
-		self.typeLabel.text = self.viewModel.rawType
-		self.roomLabel.text = self.viewModel.room
-
-        let views = [self.nameLabel, self.professorLabel]
-        views.forEach({
-            $0.translatesAutoresizingMaskIntoConstraints = false
-            self.view.addSubview($0)
-        })
-
-		// --
-        
-        let layoutGuide = self.view.htw.safeAreaLayoutGuide
-		
-        NSLayoutConstraint.activate([
-            self.nameLabel.leadingAnchor.constraint(
-                equalTo: layoutGuide.leadingAnchor, constant: Const.margin),
-            self.nameLabel.topAnchor.constraint(
-                equalTo: self.topLayoutGuide.bottomAnchor, constant: Const.margin),
-            self.nameLabel.trailingAnchor.constraint(
-                equalTo: layoutGuide.trailingAnchor, constant: -Const.margin),
-            
-            self.professorLabel.leadingAnchor.constraint(
-                equalTo: layoutGuide.leadingAnchor, constant: Const.margin),
-            self.professorLabel.topAnchor.constraint(
-                equalTo: self.nameLabel.bottomAnchor, constant: 4),
-            self.professorLabel.trailingAnchor.constraint(
-                equalTo: layoutGuide.trailingAnchor, constant: -Const.margin)
-        ])
-		
-		// --
+	private func update(viewModel: LectureViewModel) {
+		self.title = viewModel.shortTitle
+
+		self.timeLabel.text = viewModel.time
+		self.colorView.backgroundColor = UIColor(hex: viewModel.color)
+		
+		self.nameLabel.text = viewModel.longTitle
+		self.professorLabel.text = viewModel.professor
+		self.typeLabel.text = viewModel.rawType
+		self.roomLabel.text = viewModel.room
+	}
+	
+	private func setupUI() {
+		// ScrollView
+		
+		self.view.addSubview(self.scrollView)
+		
+		let layoutGuide = self.view.htw.safeAreaLayoutGuide
+		NSLayoutConstraint.activate([
+			self.scrollView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor),
+			self.scrollView.topAnchor.constraint(equalTo: layoutGuide.topAnchor),
+			self.scrollView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor),
+			self.scrollView.bottomAnchor.constraint(equalTo: layoutGuide.bottomAnchor)
+		])
+		
+		// Heading
+		
+		[self.nameLabel, self.professorLabel].forEach({
+			self.scrollView.addSubview($0)
+		})
+		
+		NSLayoutConstraint.activate([
+			self.nameLabel.leadingAnchor.constraint(
+				equalTo: self.scrollView.leadingAnchor, constant: Const.margin),
+			self.nameLabel.topAnchor.constraint(
+				equalTo: self.scrollView.topAnchor, constant: Const.margin),
+			self.nameLabel.trailingAnchor.constraint(
+				equalTo: self.scrollView.trailingAnchor, constant: -Const.margin),
+			self.nameLabel.widthAnchor.constraint(
+				equalTo: self.scrollView.widthAnchor, multiplier: 1, constant: -(2*Const.margin)),
+			
+			self.professorLabel.leadingAnchor.constraint(
+				equalTo: self.scrollView.leadingAnchor, constant: Const.margin),
+			self.professorLabel.topAnchor.constraint(
+				equalTo: self.nameLabel.bottomAnchor, constant: 4),
+			self.professorLabel.trailingAnchor.constraint(equalTo: self.scrollView.trailingAnchor, constant: -Const.margin)
+		])
+		
+		// Separator
 		
 		let separator = UIView()
 		separator.backgroundColor = UIColor.htw.lightGrey
 		separator.translatesAutoresizingMaskIntoConstraints = false
-		self.view.addSubview(separator)
-		
-        NSLayoutConstraint.activate([
-            separator.leadingAnchor.constraint(
-                equalTo: layoutGuide.leadingAnchor, constant: Const.margin),
-            separator.topAnchor.constraint(
-                equalTo: professorLabel.bottomAnchor, constant: 15),
-            separator.trailingAnchor.constraint(
-                equalTo: self.view.trailingAnchor),
-            separator.heightAnchor.constraint(
-                equalToConstant: Const.separator)
-            ])
-		
-		// --
-		
-		self.timeLabel.text = self.viewModel.time
-		
-		self.view.addSubview(self.colorView)
-		self.view.addSubview(self.timeLabel)
-		
-		NSLayoutConstraint.activate([
-			self.timeLabel.leadingAnchor.constraint(equalTo: self.colorView.leadingAnchor, constant: 15),
-			self.timeLabel.topAnchor.constraint(equalTo: separator.bottomAnchor, constant: 15),
-		])
-		
-		// --
-		
-		let typeContainer = UIView()
-		typeContainer.backgroundColor = UIColor(hex: 0xE8E8E8)
-		typeContainer.layer.cornerRadius = 6
-		typeContainer.translatesAutoresizingMaskIntoConstraints = false
-		self.view.addSubview(typeContainer)
-		self.view.addSubview(self.typeLabel)
-
-		NSLayoutConstraint.activate([
-			typeContainer.leadingAnchor.constraint(
-				equalTo: self.colorView.leadingAnchor, constant: 15),
-			typeContainer.topAnchor.constraint(
-				equalTo: self.timeLabel.bottomAnchor, constant: 10),
-			typeContainer.heightAnchor.constraint(
-				equalTo: self.typeLabel.heightAnchor, constant: 10),
-			typeContainer.widthAnchor.constraint(
-				equalTo: self.typeLabel.widthAnchor, constant: 16)
-			])
-		
-		NSLayoutConstraint.activate([
-			self.typeLabel.centerXAnchor.constraint(equalTo: typeContainer.centerXAnchor),
-			self.typeLabel.centerYAnchor.constraint(equalTo: typeContainer.centerYAnchor)
-		])
-
-		// --
-
-		let roomContainer = UIView()
-		roomContainer.backgroundColor = UIColor(hex: 0xCFCFCF)
-		roomContainer.layer.cornerRadius = 6
-		roomContainer.translatesAutoresizingMaskIntoConstraints = false
-		self.view.addSubview(roomContainer)
-		self.view.addSubview(self.roomLabel)
-		
-		NSLayoutConstraint.activate([
-			roomContainer.leadingAnchor.constraint(
-				equalTo: typeContainer.trailingAnchor, constant: 8),
-			roomContainer.topAnchor.constraint(
-				equalTo: self.timeLabel.bottomAnchor, constant: 10),
-			roomContainer.heightAnchor.constraint(
-				equalTo: self.roomLabel.heightAnchor, constant: 10),
-			roomContainer.widthAnchor.constraint(
-				equalTo: self.roomLabel.widthAnchor, constant: 16)
-		])
-		
-		NSLayoutConstraint.activate([
-			self.roomLabel.centerXAnchor.constraint(equalTo: roomContainer.centerXAnchor),
-			self.roomLabel.centerYAnchor.constraint(equalTo: roomContainer.centerYAnchor)
-		])
-		
-		// --
+		self.scrollView.addSubview(separator)
+		
+		NSLayoutConstraint.activate([
+			separator.leadingAnchor.constraint(
+				equalTo: self.scrollView.leadingAnchor, constant: Const.margin),
+			separator.topAnchor.constraint(
+				equalTo: self.professorLabel.bottomAnchor, constant: Const.spacing),
+			separator.trailingAnchor.constraint(
+				equalTo: self.scrollView.trailingAnchor),
+			separator.heightAnchor.constraint(
+				equalToConstant: Const.separator)
+		])
+		
+		// Color & Time
+		
+		[self.colorView, self.timeLabel].forEach({
+			self.scrollView.addSubview($0)
+		})
+		
+		NSLayoutConstraint.activate([
+			self.timeLabel.leadingAnchor.constraint(
+				equalTo: self.colorView.trailingAnchor, constant: 10),
+			self.timeLabel.topAnchor.constraint(
+				equalTo: separator.bottomAnchor, constant: Const.spacing)
+		])
+		
+		// Type & Room
+		
+		[self.typeLabel, self.roomLabel].forEach({
+			self.scrollView.addSubview($0)
+		})
+		
+		NSLayoutConstraint.activate([
+			self.typeLabel.leadingAnchor.constraint(
+				equalTo: self.colorView.trailingAnchor, constant: 10),
+			self.typeLabel.topAnchor.constraint(
+				equalTo: self.timeLabel.bottomAnchor, constant: 8),
+			self.roomLabel.leadingAnchor.constraint(
+				equalTo: self.typeLabel.trailingAnchor, constant: 8),
+			self.roomLabel.topAnchor.constraint(
+				equalTo: self.timeLabel.bottomAnchor, constant: 8)
+		])
+		
+		// Separator II
 		
 		let bottomSeparator = UIView()
 		bottomSeparator.backgroundColor = UIColor.htw.lightGrey
 		bottomSeparator.translatesAutoresizingMaskIntoConstraints = false
-		self.view.addSubview(bottomSeparator)
-		
-        NSLayoutConstraint.activate([
-            bottomSeparator.leadingAnchor.constraint(
-                equalTo: self.view.htw.safeAreaLayoutGuide.leadingAnchor, constant: Const.margin),
-            bottomSeparator.topAnchor.constraint(
-                equalTo: typeContainer.bottomAnchor, constant: 20),
-            bottomSeparator.trailingAnchor.constraint(
-                equalTo: self.view.trailingAnchor),
-            bottomSeparator.heightAnchor.constraint(
-                equalToConstant: Const.separator)
-        ])
-		
-        NSLayoutConstraint.activate([
-            self.colorView.leadingAnchor.constraint(equalTo: self.view.htw.safeAreaLayoutGuide.leadingAnchor, constant: Const.margin + 10),
-            self.colorView.topAnchor.constraint(equalTo: separator.bottomAnchor, constant: 15),
-            self.colorView.bottomAnchor.constraint(equalTo: bottomSeparator.topAnchor, constant: -15),
-            self.colorView.widthAnchor.constraint(equalToConstant: 4)
-        ])
+		self.scrollView.addSubview(bottomSeparator)
+		
+		NSLayoutConstraint.activate([
+			bottomSeparator.leadingAnchor.constraint(
+				equalTo: self.scrollView.leadingAnchor, constant: Const.margin),
+			bottomSeparator.topAnchor.constraint(
+				equalTo: self.colorView.bottomAnchor, constant: Const.spacing),
+			bottomSeparator.trailingAnchor.constraint(
+				equalTo: self.scrollView.trailingAnchor),
+			bottomSeparator.heightAnchor.constraint(
+				equalToConstant: Const.separator),
+			bottomSeparator.bottomAnchor.constraint(
+				equalTo: self.scrollView.bottomAnchor, constant: -Const.margin)
+		])
+		
+		// Color
+		
+		NSLayoutConstraint.activate([
+			self.colorView.leadingAnchor.constraint(
+				equalTo: separator.leadingAnchor, constant: 8),
+			self.colorView.topAnchor.constraint(
+				equalTo: separator.bottomAnchor, constant: Const.spacing),
+			self.colorView.bottomAnchor.constraint(
+				equalTo: self.typeLabel.bottomAnchor, constant: 5),
+			self.colorView.widthAnchor.constraint(equalToConstant: 4)
+		])
 	}
 	
 	override var preferredStatusBarStyle: UIStatusBarStyle {

		label.numberOfLines = 0
		label.lineBreakMode = .byWordWrapping
		label.textAlignment = .left
		return label
	}()
	

	
	// MARK: - Views

	private lazy var scrollView: UIScrollView = {
		let scrollView = UIScrollView()
		scrollView.alwaysBounceVertical = true
		scrollView.translatesAutoresizingMaskIntoConstraints = false
		return scrollView
	}()
	
	private lazy var nameLabel: UILabel = {
		let label = UILabel()
		label.font = .systemFont(ofSize: 30, weight: .bold)
