#17: Refactor partial upload