finished update loop