Use abstract factory in crawler threads to support multiple file types