build sharedCtor for model