private IEnumerable<DynamicMemberDescriptor> CreatePlotItemMembers(DynamicMemberDescriptor byItemMember, DynamicMemberSpecification spec, PSObject ps)
        {
            List<DynamicMemberDescriptor> list = new List<DynamicMemberDescriptor>();
            bool acrossSpecifierAdded = false;
            bool bySpecifierAdded = false;
            if (null != spec.AcrossSpecifier)
            {
                acrossSpecifierAdded = ps.SafeAddDynamicProperty(spec.AcrossSpecifier);
            }

            if (null != byItemMember)
            {
                bySpecifierAdded = ps.SafeAddDynamicProperty(byItemMember.MemberInfo);
            }

            foreach (var plot in spec.PlotItems)
            {
                foreach (var memberDescriptor in GetMemberDescriptorForSpecItem(spec, ps, plot, byItemMember))
                {
                    list.Add(memberDescriptor);
                }
            }

            if (bySpecifierAdded)
            {
                ps.Properties.Remove(byItemMember.MemberInfo.Name);
            }
            if (acrossSpecifierAdded)
            {
                ps.Properties.Remove(spec.AcrossSpecifier.Name);
            }
            return list;
        }