public ExtConstructorCollection SplitByParams() {
			int count;
			string[,] combos = Parameters.SplitByParamTypes(out count);
			ExtConstructorCollection ecc = new ExtConstructorCollection();
			for (int row = 0; row < count; row++) {
				ExtConstructor ec = new ExtConstructor();
				ec.Name = Name;
				ec.Class = Class;
				ec.Description = Description;
				ec.Parameters = new ExtParameterCollection();
				for (int i = 0; i < Parameters.Count; i++) {
					ec.Parameters.Add(Parameters[i].Dupe(combos[row, i]));
				}
				ecc.Add(ec);
			}
			return ecc;
		}
		public ExtConstructorCollection CreateOverloadsWithLessParams() {
			ExtConstructorCollection ecc = new ExtConstructorCollection();

			int paramCount = Parameters.Count;

			for (int i = 0; i <= paramCount; i++) {
				ExtConstructor ec = new ExtConstructor();
				ec.Name = Name;
				ec.Class = Class;
				ec.Description = Description;
				ec.Parameters = new ExtParameterCollection();
				for (int j = 0; j < i; j++) {
					ec.Parameters.Add(Parameters[j].Dupe());
				}
				ecc.Add(ec);
			}

			return ecc;
		}