We could make an `AsyncTask` for this too.