refactored xml building, request, and response into own entities