pulled Upload out (again), reimplemented the waterfall, fixed some typos