private TagViewModel AddTagInternal(ReferenceDescription tag, TagViewModel parentTagViewModel)
		{
			var tagViewModel = new TagViewModel(tag);
            if (parentTagViewModel != null)
                tagViewModel.Path = parentTagViewModel.Path + "/" + tagViewModel.Address;
            if (Subscription.MonitoredItems.Any(x => x.NodeId.ToString() == tagViewModel.Address))
            {
                tagViewModel.IsTagUsed = true;
                tagViewModel.IsExpanded = true;
                tagViewModel.ExpandToThis();
            }
            /*tagViewModel.Path = parentTagViewModel == null
                ? tagViewModel.Tag.DisplayName.ToString()
                : parentTagViewModel.Path + tagViewModel.Tag.DisplayName.ToString();*/
            if (parentTagViewModel != null)
				parentTagViewModel.AddChild(tagViewModel);

            if (tag != null)
                foreach (var childTag in Session.Browse(new NodeId(tag.NodeId), null))
                    AddTagInternal(childTag, tagViewModel);
            else
                foreach (var childTag in Session.Browse(null, null))
                    AddTagInternal(childTag, tagViewModel);
            return tagViewModel;
		}