More cleanup, added nullary constructor support