refactoring new router