 	}
 
 	public func addVirtualField(name field: String, callbackFunction cbfunc: @escaping CNMappingTable.VirtualFieldCallback) {
-		mNextVirtualFields[field] = cbfunc
+		if mNextVirtualFields != nil {
+			mNextVirtualFields![field] = cbfunc
+		} else {
+			let fields: Dictionary<String, CNMappingTable.VirtualFieldCallback> = [field: cbfunc]
+			mNextVirtualFields = fields
+		}
 	}
 
 	public var hasHeader: Bool {

	private var mNextDataTable:		CNMappingTable?
	private var mNextFieldNames:		Array<FieldName>?
	private var mNextRecordMappingFunction:	FilterFunction?
	private var mNextVirtualFields:		Dictionary<String, CNMappingTable.VirtualFieldCallback>

	private var mHasHeader:			Bool
	private var mIsEnable:			Bool

		case .ok(_):
			break
		case .error(let err):
			CNLog(logLevel: .error, message: err.toString(), atFunction: #function, inFile: #file)
		@unknown default:
			CNLog(logLevel: .error, message: "Unknown error", atFunction: #function, inFile: #file)
		}
		let path      = CNValuePath(identifier: nil, elements: [.member("table")])
		let table     = CNValueTable(path: path, valueStorage: storage)
