corrected subobject restruct