refactor router to sepererate routers