improve controller