very nice job with the `receiveResponse`, `onError`, and `sendData` functions. very explicit and clear.