private void _removeFilter(CswNbtViewEditorData Return)
        {
            Dictionary <string, CswNbtViewPropertyFilter> filtersToRemove = new Dictionary <string, CswNbtViewPropertyFilter>();
            Collection <ICswNbtMetaDataProp> propsToRemove = new Collection <ICswNbtMetaDataProp>();

            CswNbtViewRoot.forEachProperty eachProperty = prop =>
            {
                foreach (CswNbtViewPropertyFilter filter in prop.Filters)
                {
                    if (filter.TextLabel == Request.FilterToRemove.TextLabel)
                    {
                        if (prop.ShowInGrid || prop.Filters.Count > 1)  //if ShowInGrid == true, just remove the filter
                        {
                            filtersToRemove.Add(prop.UniqueId, filter);
                        }
                        else //otherwise, remove the property as well
                        {
                            ICswNbtMetaDataProp propToRemove;
                            if (prop.Type.Equals(CswEnumNbtViewPropType.ObjectClassPropId))
                            {
                                propToRemove = _CswNbtResources.MetaData.getObjectClassProp(prop.ObjectClassPropId);
                            }
                            else
                            {
                                propToRemove = _CswNbtResources.MetaData.getNodeTypeProp(prop.NodeTypePropId);
                            }

                            if (null != propToRemove)
                            {
                                propsToRemove.Add(propToRemove);
                            }
                        }
                    }
                }
            };
            CurrentView.Root.eachRelationship(null, eachProperty);

            foreach (var propAndFilter in filtersToRemove)
            {
                CswNbtViewProperty prop = (CswNbtViewProperty)CurrentView.FindViewNodeByUniqueId(propAndFilter.Key);
                prop.removeFilter(propAndFilter.Value);
            }
            foreach (ICswNbtMetaDataProp propToRemove in propsToRemove)
            {
                CurrentView.removeViewProperty(propToRemove);
            }

            _getFilters(Return, CurrentView);

            HashSet <string> seenRels = new HashSet <string>();

            CswNbtViewRoot.forEachRelationship eachRelationship = relationship =>
            {
                if (false == seenRels.Contains(relationship.TextLabel))
                {
                    seenRels.Add(relationship.TextLabel);
                    Return.Step4.Relationships.Add(relationship);
                }
            };
            CurrentView.Root.eachRelationship(eachRelationship, null);

            Return.Step4.ViewJson = CswConvert.ToString(CurrentView.ToJson());
        }