client side routing for real! figured out how to handle refreshes