                 NSNotificationCenter.defaultCenter().removeObserver(handler)
             }
 
+            setUpTimer()
+            
             // update stuff
             if let post = post {
                 switch type {

    }
    
    dynamic private func timerFired(timer: NSTimer) {
        if (self.post?.player.isPlaying() ?? false) {
            self.setNeedsDisplay()
        }
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        setNeedsDisplay()
        updateProfileLabelTextColor()
    }
    
    // Customize view to be able to re-use it for search results.

                        [weak self]
                        (note) -> Void in
                        self?.updateProfileLabelTextColor()
                        self?.setUpTimer()
                        
                })
            }
        }
    }
    
    private func setUpTimer() {
        if (self.updateTimer == nil && self.post?.player.isPlaying() ?? false) {
            // 60 fps
            
            self.updateTimer = NSTimer(timeInterval: 1.0 / 60.0,
                target: self, selector: Selector("timerFired:"),
                userInfo: nil,
                repeats: true)

            NSRunLoop.currentRunLoop().addTimer(self.updateTimer!, forMode: NSRunLoopCommonModes)
        } else {
            self.updateTimer?.invalidate()
            self.updateTimer = nil
        }
        
    }
    
    override func didMoveToWindow() {
