constructors now all w/ same convention