if external storage doesn't exist, use internal/files
support unencrypted sharing, and remove unnecessary threading