added scalar product
made some vector functions strict