added an interface for files that have knowledge of their url (for example files stored in 3rd party backends)