more on rational class with gcd, less, max, require
using operator for class