change x:call, accept a function to as the parameter to provide the callback's parameter