improve client side router