public HierarchicalCodelistMutableObjectBaseCore(
				IHierarchicalCodelistObjectBase hCodelist) : base(hCodelist) {
			this._hierarchies = new HashSet<IHierarchyMutableObjectBase>();
			/* foreach */
			foreach (IHierarchyObjectBase<IHierarchicalCodelistObjectBase> hierarchyObjectBase  in  hCodelist.Hierarchies) {
				this._hierarchies.Add(new HierarchyMutableObjectBaseCore(hierarchyObjectBase));
			}
		}
	    /// <summary>
        /// Remove the given IHierarchicalCodelistObjectBase from this container, do nothing if it is not in this container
        /// </summary>
        /// <param name="hierarchicalCodelistObject">HierarchicalCodelist Object </param>
	    public void RemoveHierarchicalCodelist(IHierarchicalCodelistObjectBase hierarchicalCodelistObject)
        {
		    this._hcls.Remove(hierarchicalCodelistObject);
	    }
	    /// <summary>
        /// Add a IHierarchicalCodelistObjectBase to this container, overwrite if one already exists with the same URN
        /// </summary>
        /// <param name="hierarchicalCodelistObject"> HierarchicalCodelist Object </param>
	    public void AddHierarchicalCodelist(IHierarchicalCodelistObjectBase hierarchicalCodelistObject)
        {
		    if(hierarchicalCodelistObject != null)
            {
			    this._hcls.Remove(hierarchicalCodelistObject);
			    this._hcls.Add(hierarchicalCodelistObject);
		    }
	    }