initial implementation of marshaling for compound objects