cannot use std::swap with atomic variables
VirtualArray now stores atomic pointers to Items