Added operator overloads and dot product