refactor the result view and the router for user