dry on router.js