ctor still supports "new" but doesn't need it