change filelist to ConcurrentDictionary for thread-saftey