modified vector operations