Factor ResponseWriter out of Client, Add Router interface