mass upload backend functions