feat(subgenerators): add the Factory generator