there is a local function in the run function, so it doesn't work