op overloading and other goodies.