switched to promiscuous promise factory and converted final stream to return promise so backup.run() is thenable