still re-factoring upload controller into multiple smaller controllers