make `new` optional.