First commit of declarative generator method
added convenience constructor
trivial