refactor: custom router
dynamic controller