[cleanup] moved photoupload into its own handler