made route abstract so it can generate urls. also a route can create new routes