router - refactoring all the time