chore: Add base generator and unit tests