re-worked to make it more like hacker news, and also work with nested routes