a lot to clean up, but nested routes work for the most part