split up program into separate files, added source for downloaded file