generateReverseZones is now a template parameter