             }
         }
         
+        /**
+         Init and insert a `menu item` at `index`.
+         
+         - parameter itemWithTitle: `item title`.
+         - parameter action: an `action` that will be executed when user highlight and release finger on an `menu item`.
+         - parameter at: specify `index` that item should be insert at
+         
+         - author: John Cido
+         */
+        final public func insert(
+            itemWithTitle title: String, action: @escaping (inout CKPanMenuItemType) -> Void, at index: Int
+            ) {
+            let item = CKPanMenuItem()
+            item.font = UIFont(name: fontName != nil ? fontName! : item.font.fontName, size: fontSize)
+            item.index = items.count
+            item.action = action
+            item.text = title
+            item.textColor = color
+            item.resume()
+            if directionFactor == 1 {
+                items.insert(item, at: index)
+                menuView.insertArrangedSubview(item, at: index)
+            } else {
+                items.insert(item, at: items.count - 1 - index)
+                menuView.insertArrangedSubview(item, at: items.count - 1 - index)
+            }
+        }
+        
+        /**
+         Append a custome defined `menu item`.
+         
+         - parameter item: an `item title` that conforms to `protocol CKPanMenuItemType`.
+         
+         - author: John Cido
+         */
         final public func append(item: CKPanMenuItemType) {
             var item = item
             item.index = items.count

            directionFactor == 1 ? menuView.addArrangedSubview(item as! UIView) : menuView.insertArrangedSubview(item as! UIView, at: 0)
        }
        
        final public func contentDidPan(_ sender: UIPanGestureRecognizer) {
            let state = sender.state
            let translation = sender.translation(in: view)
            var origin, limit, end: CGFloat!
            if isVertical {
                origin = 20 + contentView.bounds.height / 2

        @IBOutlet public var menuViewConstraints: [NSLayoutConstraint]!
        private var menuViewBaseConstraintIndex = 0
        fileprivate var panGestureRecognizer: UIPanGestureRecognizer!
        fileprivate var perpendicularPanGestureRecognizer: UIPanGestureRecognizer!
        public var safeZone: CGRect!
        
        public var position: PanMenuScreenPosition = .top
        public var items = [CKPanMenuItemType]()
