 
 // MARK: Animation Functions
 extension ContextualMenu {
-    func presentMenuItems() {
+    func presentMenuItems(at location: CGPoint) {
+        startingLocation = location
+        startCircleView.center = location
+        reloadData()
+        
         guard delegate?.contextualMenuShouldActivate?(self) != false && !contextualMenuItems.isEmpty && shadowView.alpha == 0.0 && window != nil else { return }
         
         delegate?.contextualMenuDidActivate?(self)

    
    /// Defaults to false. This flag determines whether or not the menu item will animate outwards on highlight. Or just stay in place.
    @objc public var shouldHighlightOutwards = false
    
    /// Distance of each menuItem from the edge of the startingCircle (the thing that indicates your touch). Lower values bring all the menu items closer to the center and higher values push them further from the center. Defaults to 30 pts.
    @objc public var menuItemDistancePadding: CGFloat = 30.0
    

    @objc func handleGesture(recognizer: UIGestureRecognizer) {
        let touchLocation = recognizer.location(in: nil)
        if recognizer.state == .began || recognizer is UITapGestureRecognizer {
            presentMenuItems(at: touchLocation)
        } else if recognizer.state == .changed {
            handleDrag(with: touchLocation)
        } else if recognizer.state == .ended || recognizer.state == .cancelled {
