adds more subgenerators, tests