split app into application, request and response classes