routes and abstraction layers