ctor direct/aggregate
aggregate ctor impl