Using properties instead of private fields to avoid the 0/0 problem caused by default(Rational).