fix: add Rational