bug fix: use `context` instead of `this`
bug fix: correct the context when router `listen` 
to server directly
Add comments for constructor
add `next` as last argument instead of alter `this`
remove Role