construct when omitting `new`