update generator to work with new abstraction