 {
 	var rowCount: 		Int		{ get }
 	var columnCount:	Int		{ get }
-	var fieldNames:		Array<String> 	{ get }
+
+	var allFieldNames:	Array<String> 	{ get }
+	var activeFieldNames:	Array<String> 	{ get set }
 
 	func fieldName(atIndex idx: Int) -> String?
 

		mFieldNames	= []
	}

	public var rowCount:    Int     { get { return mTable.recordCount	}}
	public var columnCount: Int     { get { return mTable.fieldNames.count	}}
	public var core:	CNTable { get { return mTable			}}

	public var fieldNames: Array<String> { get { return mTable.fieldNames }}

	public func fieldName(atIndex idx: Int) -> String? {
		let names = mTable.fieldNames
		if 0<=idx && idx<names.count {
			return names[idx]
		} else {

		}
	}

	public var core: Dictionary<String, CNValue>	{ get { return mDictionary		}}
	public var rowCount: Int			{ get { return mDictionary.count	}}
	public var columnCount: Int			{ get { return mFieldNames.count	}}
	public var allFieldNames: Array<String>		{ get { return mFieldNames		}}
	public var activeFieldNames: Array<String> {
		get { return mFieldNames }
		set(names) { CNLog(logLevel: .error, message: "Can not overwrite field names", atFunction: #function, inFile: #file) }
	}

	public func fieldName(atIndex idx: Int) -> String? {
		if 0<=idx && idx<mFieldNames.count {
