Rough implementation
Handling responses appropriately (basic error handling, JSON results, raw streams when appropriate)