renamed variable names in function declarations to match source
remove unnecessary parentheses
Documented overloaded operators