make all the constructors well behaved