place updating into separate thread