cleanup
experiment with generation of type-smart constructors