renamed classes for clarity, added minor exception handling to JSONRequest