Moved abstract generator to API