added comments and a tail, max, clone, isEqual, isGreaterThan