         switch (status.running, status.paused) {
         case (1, 0):
             statusUILabel.text = " RUNNING"
-            startUIButton.isEnabled = false
-            pauseUIButton.isEnabled = true
-            cancelUIButton.isEnabled = true
+            setButtonStates(start: false, pause: true, cancel: true)
         case (1, 1):
             statusUILabel.text = "PAUSED"
-            startUIButton.isEnabled = true
-            pauseUIButton.isEnabled = false
-            cancelUIButton.isEnabled = true
+            setButtonStates(start: false, pause: false, cancel: true)
         default:
             statusUILabel.text = "ready"
-            startUIButton.isEnabled = true
-            pauseUIButton.isEnabled = false
-            cancelUIButton.isEnabled = false
-        }
-        for button: UIButton in [startUIButton, pauseUIButton, cancelUIButton]{
-            button.alpha = button.isEnabled ? 1.0 : 0.1
         }
         if status.running == 1 && status.paused == 1 {
             showPadView(for: .gridMove)

            self.identifierUILabel.text = panoPeripheral.peripheral?.identifier.uuidString
            //self.signalUILabel.text = ...
        }
    }

    override func didReceiveMemoryWarning() {

    
    @IBAction func startPano(_ sender: UIButton) {
        showPadView(for: .freeMove)
        setButtonStates(start: false, pause: false, cancel: true)
    }
    @IBAction func pausePano(_ sender: UIButton) {
        panoPeripheral?.send(command: .pause)
        showPadView(for: .gridMove)
        setButtonStates(start: false, pause: false, cancel: true)
    }
    @IBAction func cancelPano(_ sender: UIButton) {
        panoPeripheral?.send(command: .cancel)
        hidePadView()
        setButtonStates(start: true, pause: false, cancel: false)
    }

    func showPadView(for moveMode: MoveMode) {
