improve the controllers