constructor
update