work on rational.c