Rename name Responser to Responder, and make the concrete type hidden
Refactor Session management into new class