class Rational modified