refactor upload droplet