changed to allow for late assignment of subschemas to their member variables