Move run function to semiauto.runner