use correct type in some of the operator overloads