switched to vectors of pointers
We can't use vectors of items directly since we're relying on the
address to maintain constant throughout the program's execution.