Refactor: extracted download logic to separate service.