feat(uploading): restructure, limits, progress

add a size limit, progress counters, re-structure handlers

time: 2h:40