added sharedCtor for model