Upload

Functional, but probably can look better and be cleaned up.