vector operations added