maybe it is clearer if we call this function onAction and the parameter userActionCallback or something like that.