refactored the whole router to use small phrases and less parameters