move update to timer