It would be more readable to split all of this in another Method that returns `(context io.ReadCloser, err error)`