make `new` optional