feat(#48): generator refactor