better upload input