WIP: generic ggen