added rational number class