Use RouterInterface instead of Router.
Refactor test code. Extract mock factory methods to a seperate base class.
Add tests for Client.