Updated walk() and implemented run()