changes mostly in controller but also in others