- IRequest and IResponse abstractions (part one)