update smart constructors etc.