implemented ability to leave off default no args constructor.