 		}
 	}
 
+	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 fieldNames: Array<String>		{ get { return mFieldNames		}}
-	public var core: Dictionary<String, CNValue>	{ get { return mDictionary		}}
+	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 {

		}

		/* Update column titles */
		let fnames = mTableInterface.fieldNames
		for i in 0..<mTableInterface.columnCount {
			let col = mTableView.tableColumns[i]
			col.identifier	= NSUserInterfaceItemIdentifier(fnames[i])

		mFieldNames	= []
	}

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

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

	public var activeFieldNames: Array<String> {
		get {
			return mTable.activeFieldNames
		}
		set(names){
			mTable.activeFieldNames = names
		}
	}

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