implement parametric AGs