Rational.java Phase I