Working version, main module changed to more accurately reflect how a
process would deal with the download, i.e. spawning a process to deal
with messages from children