Back from classes to struct (but we are still sticking with C++). Also
added FormatArray, FormatMap and FormatStruct.