implemented dot product, but not debugged yet