revamped the route class