new run functions, `run` is no longer global