started refactoring - introduced some dedicated classes to handle response and request