updated constructors