update route() and run()