parameterizing the definitions