 }
 
 func getViewByUniqueID(containingView:UIView, anID:String) ->UIView?{
+    
     let filteredSubviews = containingView.subviews.filter(){$0.uniqueID == anID}
     if filteredSubviews.count > 0{
         return filteredSubviews[0]

        }
    }
    
    var dragEntered: Bool? {
        get {
            return (objc_getAssociatedObject(self, &AssociatedKeys.dragEntered) as? Bool)!
        }
        
        set {
            if let newValue = newValue {
                objc_setAssociatedObject(
                    self,
                    &AssociatedKeys.dragEntered,
                    newValue as Bool,
                    .OBJC_ASSOCIATION_RETAIN_NONATOMIC
                )
            }
        }
    }
    
    var dragExited: Bool? {
        get {
            return (objc_getAssociatedObject(self, &AssociatedKeys.dragExited) as? Bool)!
        }
        
        set {
            if let newValue = newValue {
                objc_setAssociatedObject(
                    self,
                    &AssociatedKeys.dragExited,
                    newValue as Bool,
                    .OBJC_ASSOCIATION_RETAIN_NONATOMIC
                )
            }
        }
    }
}

extension UIView {
    private struct AssociatedKeys {
        static var uniqueID:String? = nil
        static var dragEntered:Bool = false
        static var dragExited:Bool = false
    }
    
    var uniqueID: String? {
        get {
            return objc_getAssociatedObject(self, &AssociatedKeys.uniqueID) as? String
        }
        set {
            if let newValue = newValue {
                objc_setAssociatedObject(
