             tableView.register(nib, forIdentifier: convertToNSUserInterfaceItemIdentifier(identifier))
         }
     }
-
-    // MARK: Utility
+}
+
+// MARK: Utility
+extension MainViewController {
     func changeEnableCommentSpeech(_ enabled: Bool) {
         // log.debug("\(enabled)")
         updateSpeechManagerState()

        return shouldScroll
    }

    private func scrollTableViewToBottom(animated: Bool = false) {
        let clipView = scrollView.contentView
        let x = clipView.documentVisibleRect.origin.x
        let y = clipView.documentRect.size.height - clipView.documentVisibleRect.size.height

    }

    // MARK: Live Info Updater
    func loadThumbnail() {
        NicoUtility.shared.loadThumbnail { (imageData) -> Void in
            DispatchQueue.main.async {
                guard let data = imageData else { return }
