improved camera updating