todo: including allowing supplying remote filetypes.json