add estimated time remaining and failure handling to package downloading