generic value functions now recast as custom functions