singleton + upload factory example