     }
     
     open func open() {
-        guard !isOpen else { return }
-        guard !isAnimatingOpenClose else {
-            bufferedAction = bufferedAction ?? .open
-            return
-        }
+        guard !isOpen && !isAnimatingOpenClose else { return }
         
         delegate?.actionButtonWillOpen?(self)
         

        expandOverlay()
        expandItems()
        transitionButtonTitle()
        
        isOpen = true
    }
    
    open func close() {
        guard isOpen else { return }
        guard !isAnimatingOpenClose else {
            bufferedAction = bufferedAction ?? .close
            return
        }
        
        delegate?.actionButtonWillClose?(self)
        

        reduceOverlay()
        reduceItems()
        transitionButtonTitle()
    }
    
    
