mv vector_class in its own file, included before Gatherer which needs it