router refact