         switch musicType {
         case .library:
             switch musicPlayer.playbackState {
-            case .playing: playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Pause"), for: [])
-            case .paused:  playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Play"),  for: [])
+            case .playing: playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Pause"), for: .normal)
+            case .paused:  playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Play"),  for: .normal)
             default:       break
             }
+            self.updateAlbumImageConstraints(for: musicPlayer.playbackState)
         case .file:
             if audioPlayer.rate == 0 { // is paused
-                playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Play"),  for: [])
+                playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Play"),  for: .normal)
+                self.updateAlbumImageConstraints(for: .paused)
             } else {
-                playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Pause"), for: [])
+                playPauseButton.setBackgroundImage(#imageLiteral(resourceName: "Pause"), for: .normal)
+                self.updateAlbumImageConstraints(for: .playing)
+            }
+        }
+    }
+    
+    func updateAlbumImageConstraints(for playingState: MPMusicPlaybackState) {
+        DispatchQueue.main.async {
+            let constant: CGFloat = playingState == .paused ? 8 : 0
+            self.albumImageConstraints.left.constant = constant
+            self.albumImageConstraints.right.constant = -constant
+            self.albumImageConstraints.top.constant = constant
+            self.albumImageConstraints.bottom.constant = -constant
+            UIView.animate(withDuration: 0.25) {
+                self.imageOuterView.layoutIfNeeded()
             }
         }
     }

        let isDarkColor = image.averageColor.isDark
        let blurEffect = isDarkColor ? UIBlurEffect(style: .light) : UIBlurEffect(style: .dark)
        UIView.animate(withDuration: 0.5) {
            self.imageView.image = image
            self.backgroundImageView.image = image
            self.backgroundView.effect = blurEffect
            self.vibrancyEffectView.effect = UIVibrancyEffect(blurEffect: blurEffect)

        self.containerConstraints = ((containerView.top == self.view.top).activate(), (containerView.bottom == self.view.bottom).activate())
        
        self.verticalConstraints = [
            imageOuterView.top == containerView.top,
            imageOuterView.width == containerView.width * 0.85,
            imageOuterView.height == imageOuterView.width,
            imageOuterView.centerX == containerView.centerX,
        ]
        
        // separating the extra constraints because of swift limitations
        self.verticalConstraints.append(contentsOf: [
            songTitleLabel.leading == imageOuterView.leading,
            songTitleLabel.trailing == imageOuterView.trailing,
            songTitleLabel.top == imageOuterView.bottom + 28,
            playPauseButton.centerX == songTitleLabel.centerX
        ])
        
        self.horizontalConstraints = [
            imageOuterView.height == containerView.height,
            imageOuterView.width == imageOuterView.height ~ 900,
            imageOuterView.leading == containerView.leading + 24,
            imageOuterView.centerY == containerView.centerY
        ]
        
        // separating the extra constraints because of swift limitations
        self.horizontalConstraints.append(contentsOf: [
            songTitleLabel.leading == imageOuterView.trailing + 16,
            songTitleLabel.trailing == containerView.trailing - 16,
            playPauseButton.centerY == containerView.centerY
        ])
        
        self.albumImageConstraints = ((imageInnerView.left  == imageOuterView.left).activate(),
                                      (imageInnerView.right == imageOuterView.right).activate(),
                                      (imageInnerView.top   == imageOuterView.top).activate(),
                                      (imageInnerView.bottom == imageOuterView.bottom).activate())
        
        let buttonSize: CGFloat = 48.0, margin: CGFloat = 24.0
        
