new vector routine