Multi file upload

The main issue here is that all added callbacks get called at the same time asynchronously. That causes parallel uploads.

If those callbacks can somehow be executed sequentially then we could easily break the process into smaller steps using additional observers.