add support for File and InputStream upload; more documentation