router refactor'