in the next iteration, I'll probably change this so it returns Image directly - exceptions get thrown if the status is outside the allowed range, or if the call was a failure anyway.