make upload optional