moved to vector of base class pointers