use EventRouter to solve the dependency