allow for non-default constructor and default constructor.