added more vector operations