vector scalar mult added
raw ptrs replaced with smart ptrs