Refactor to request-response model
Merge pull request #37 from Ceasar/request-response

Refactor to request-response model