most updates done with IOArrays rather than lists now. for some reason this is even slower