implemented parametric