optimised updateUI