add typed "constructors"