feat(subgenerators): add the Factory generator

#10