parameters in the constructor are now optional