Construtor now really needs all the fields