factor camera updating code out
at least some sort of synchronisation