Added rational class; still have problems with reduce and equals