Refactor of HttpDownloadLink for a more functional and OOP design.