allow custom functions to modify key