move text download functions to a new service class