refactor router to use container->execute