added rational.js