more DRY code, dropped streaming uploads