adding new vector operations