Initial draft of HW5. Operator overloading needs thorough testing.