Why have a mode argument? The controller gets updated every frame with the current mode.