Continued implementing items. The only way that I can think of doing this
is by creating a vector of pointers using "new."  This means that we'll have
to manage our own memory and delete the items whenever they go out of scope.
It also means that we'll have to be really careful removing pointers, because
it will be really easy to get invalid pointeres with this method.  But it's the
only decent method I can think of using.