added controller.update()