Relocated all request/response logic into instance method