controller improve