move the storage classes into its own package
add basic upload functionality, fixes #3