broke apart the prototype for vector