diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,14 @@
 # Changelog for fakedata
 
+## 0.4.0
+
+* Move Provider modules into other-modules. This makes the haddock
+  much more readable.
+* Update to various `en` data sources: color.yml, super_smash_bros.
+* Fix name of FakerTvShow.DrWho module: villains (from villians).
+* New locale addition: en-TH, th
+* Modification of other locales: fr-CA, ja
+
 ## 0.3.1
 
 * Make it compatbile with ghc-8.8.1
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -162,16 +162,6 @@
 For seeing the full list of combinators, see the module documentation of
 `Faker.Combinators`.
 
-Reading Haddock Documentation
------------------------------
-
-There are two kind of modules provided by the library:
-
--   Faker.Provider.\* : You most likely don't want to use them or read
-    them. They are internally used by the library.
--   Faker.\<Entity\> : Here Entity refers to an generic object like Book,
-    Movie etc. This is the module you should be interested to look upon.
-
 Comparision with other libraries
 --------------------------------
 
@@ -180,7 +170,7 @@
 -   [faker](https://hackage.haskell.org/package/faker-0.0.0.2)
 -   [fake](https://hackage.haskell.org/package/fake-0.1.1.1)
 
-The problem (for me) with both the above libraries is that the library
+The problem with both the above libraries is that the library
 covers only a very small amount of fake data source. I wanted to have an
 equivalent functionality with something like
 [faker](https://github.com/stympy/faker). Also, most of the combinators
diff --git a/fakedata.cabal b/fakedata.cabal
--- a/fakedata.cabal
+++ b/fakedata.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b6a65970d5f1dbdf544a14cc669dc23f816ed4bf82309326c0e5f76a916409f1
+-- hash: be1b66f87465dd538daf55cddd125c8a8a12eb5b70b61d2150f99bf40a2c83fb
 
 name:           fakedata
-version:        0.3.1
+version:        0.4.0
 synopsis:       Library for producing fake data
 description:    Please see the README on GitHub at <https://github.com/psibi/fakedata#readme>
 category:       Random, Fake, FakeData
@@ -44,6 +44,7 @@
     faker/lib/locales/en-NZ.yml
     faker/lib/locales/en-PAK.yml
     faker/lib/locales/en-SG.yml
+    faker/lib/locales/en-TH.yml
     faker/lib/locales/en-UG.yml
     faker/lib/locales/en-US.yml
     faker/lib/locales/en-ZA.yml
@@ -71,6 +72,7 @@
     faker/lib/locales/ru.yml
     faker/lib/locales/sk.yml
     faker/lib/locales/sv.yml
+    faker/lib/locales/th.yml
     faker/lib/locales/tr.yml
     faker/lib/locales/uk.yml
     faker/lib/locales/vi.yml
@@ -331,6 +333,57 @@
       Faker.NatoPhoneticAlphabet
       Faker.PhoneNumber
       Faker.ProgrammingLanguage
+      Faker.Quote
+      Faker.Quote.Shakespeare
+      Faker.Relationship
+      Faker.Restaurant
+      Faker.Science
+      Faker.SlackEmoji
+      Faker.Source
+      Faker.Space
+      Faker.Sport.Basketball
+      Faker.Sport.Football
+      Faker.Subscription
+      Faker.Superhero
+      Faker.Team
+      Faker.TH
+      Faker.TvShow.AquaTeenHungerForce
+      Faker.TvShow.BoJackHorseman
+      Faker.TvShow.BreakingBad
+      Faker.TvShow.Buffy
+      Faker.TvShow.Community
+      Faker.TvShow.DrWho
+      Faker.TvShow.DumbAndDumber
+      Faker.TvShow.FamilyGuy
+      Faker.TvShow.FreshPrinceOfBelAir
+      Faker.TvShow.Friends
+      Faker.TvShow.GameOfThrones
+      Faker.TvShow.HeyArnold
+      Faker.TvShow.HowIMetYourMother
+      Faker.TvShow.MichaelScott
+      Faker.TvShow.NewGirl
+      Faker.TvShow.ParksAndRec
+      Faker.TvShow.RickAndMorty
+      Faker.TvShow.Rupaul
+      Faker.TvShow.Seinfeld
+      Faker.TvShow.SiliconValley
+      Faker.TvShow.Simpsons
+      Faker.TvShow.SouthPark
+      Faker.TvShow.Stargate
+      Faker.TvShow.StarTrek
+      Faker.TvShow.StrangerThings
+      Faker.TvShow.TheExpanse
+      Faker.TvShow.TheItCrowd
+      Faker.TvShow.TheThickOfIt
+      Faker.TvShow.TwinPeaks
+      Faker.TvShow.VentureBros
+      Faker.University
+      Faker.Vehicle
+      Faker.Verbs
+      Faker.WorldCup
+      Faker.Yoda
+  other-modules:
+      Paths_fakedata
       Faker.Provider.Address
       Faker.Provider.Ancient
       Faker.Provider.Animal
@@ -459,10 +512,10 @@
       Faker.Provider.SuperSmashBros
       Faker.Provider.SwordArtOnline
       Faker.Provider.Team
-      Faker.Provider.TH
       Faker.Provider.TheExpanse
       Faker.Provider.TheItCrowd
       Faker.Provider.TheThickOfIt
+      Faker.Provider.TH
       Faker.Provider.TwinPeaks
       Faker.Provider.UmphreysMcgee
       Faker.Provider.University
@@ -475,57 +528,6 @@
       Faker.Provider.WorldOfWarcraft
       Faker.Provider.Yoda
       Faker.Provider.Zelda
-      Faker.Quote
-      Faker.Quote.Shakespeare
-      Faker.Relationship
-      Faker.Restaurant
-      Faker.Science
-      Faker.SlackEmoji
-      Faker.Source
-      Faker.Space
-      Faker.Sport.Basketball
-      Faker.Sport.Football
-      Faker.Subscription
-      Faker.Superhero
-      Faker.Team
-      Faker.TH
-      Faker.TvShow.AquaTeenHungerForce
-      Faker.TvShow.BoJackHorseman
-      Faker.TvShow.BreakingBad
-      Faker.TvShow.Buffy
-      Faker.TvShow.Community
-      Faker.TvShow.DrWho
-      Faker.TvShow.DumbAndDumber
-      Faker.TvShow.FamilyGuy
-      Faker.TvShow.FreshPrinceOfBelAir
-      Faker.TvShow.Friends
-      Faker.TvShow.GameOfThrones
-      Faker.TvShow.HeyArnold
-      Faker.TvShow.HowIMetYourMother
-      Faker.TvShow.MichaelScott
-      Faker.TvShow.NewGirl
-      Faker.TvShow.ParksAndRec
-      Faker.TvShow.RickAndMorty
-      Faker.TvShow.Rupaul
-      Faker.TvShow.Seinfeld
-      Faker.TvShow.SiliconValley
-      Faker.TvShow.Simpsons
-      Faker.TvShow.SouthPark
-      Faker.TvShow.Stargate
-      Faker.TvShow.StarTrek
-      Faker.TvShow.StrangerThings
-      Faker.TvShow.TheExpanse
-      Faker.TvShow.TheItCrowd
-      Faker.TvShow.TheThickOfIt
-      Faker.TvShow.TwinPeaks
-      Faker.TvShow.VentureBros
-      Faker.University
-      Faker.Vehicle
-      Faker.Verbs
-      Faker.WorldCup
-      Faker.Yoda
-  other-modules:
-      Paths_fakedata
   hs-source-dirs:
       src
   build-depends:
@@ -550,8 +552,6 @@
   main-is: Spec.hs
   other-modules:
       AddressSpec
-      AppSpec
-      BeerSpec
       BookSpec
       BossaNovaSpec
       CoffeeSpec
diff --git a/faker/lib/locales/en-CA.yml b/faker/lib/locales/en-CA.yml
--- a/faker/lib/locales/en-CA.yml
+++ b/faker/lib/locales/en-CA.yml
@@ -5,6 +5,7 @@
       state: [Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Nova Scotia, Northwest Territories, Nunavut, Ontario, Prince Edward Island, Quebec, Saskatchewan, Yukon]
       state_abbr: ["AB", "BC", "MB", "NB", "NL", "NS", "NU", "NT", "ON", "PE", "QC", "SK", "YT"]
       default_country: [Canada]
+      country_code: [CA]
 
     internet:
       free_email: [gmail.com, yahoo.ca, hotmail.com]
diff --git a/faker/lib/locales/en-TH.yml b/faker/lib/locales/en-TH.yml
new file mode 100644
--- /dev/null
+++ b/faker/lib/locales/en-TH.yml
@@ -0,0 +1,360 @@
+en-TH:
+  faker:
+    name:
+      first_name:
+      - A-gun
+      - A-wut
+      - Aat
+      - Aawut
+      - Achara
+      - Adranuch
+      - Ambhom
+      - Anada
+      - Ananada
+      - Anchali
+      - Anuman
+      - Anurak
+      - Apasra
+      - Apsara
+      - Aran
+      - Aroon
+      - Asnee
+      - Atid
+      - Benjakalyani
+      - Boon-Mee
+      - Boon-Nam
+      - Boribun
+      - Bun Ma
+      - Buppha
+      - Busaba
+      - Bussaba
+      - Chaem Choi
+      - Chai Charoen
+      - Chai Son
+      - Chailai
+      - Chaisai
+      - Chaisee
+      - Chaiya
+      - Chaiyo
+      - Chakan
+      - Chalerm
+      - Chalermchai
+      - Chalermwan
+      - Chaloem Chai
+      - Chaloem
+      - Channarong
+      - Chantana
+      - Chanthira
+      - Chao Fah
+      - Charanya
+      - Chariya
+      - Charn Chai
+      - Charoen
+      - Charoenrasamee
+      - Charong
+      - Charunee
+      - Chatalerm
+      - Chatchada
+      - Chatchom
+      - Chatmanee
+      - Chatrasuda
+      - Chatri
+      - Chaveevan
+      - Chayan
+      - Chet
+      - Chimlin
+      - Chinda
+      - Chintana
+      - Chirawan
+      - Chomechai
+      - Chomesri
+      - Chompoo
+      - Chongrak
+      - Choochai
+      - Chuachai
+      - Chuachan
+      - Chuanchen
+      - Chuasiri
+      - Chuenchai
+      - Chula
+      - Chulamai
+      - Churai
+      - Dao
+      - Dara
+      - Daw
+      - Decha
+      - Dok Mai
+      - Dok Phi Sua
+      - Dok Rak
+      - Dok-Ban-Yen
+      - Dusadi
+      - Fa Ying
+      - Han
+      - Hansa
+      - Hanuman
+      - Hom
+      - Isra
+      - Ittiporn
+      - Kaew
+      - Kalaya
+      - Kamala
+      - Kamlai
+      - Kamnan
+      - Kanchana
+      - Kannika
+      - Kanok
+      - Kanya
+      - Karawek
+      - Karnchana
+      - Kasem
+      - Kasemchai
+      - Khemkhaeng
+      - Khiew Wan
+      - Khun Mae
+      - Kiet
+      - Kit
+      - Kitti
+      - Kittibun
+      - Kittichai
+      - Kittichat
+      - Kla Han
+      - Kla
+      - Klaew Kla
+      - Klahan
+      - Kob Chai
+      - Kob Khun
+      - Kob Sinn
+      - Kob Sook
+      - Kohsoom
+      - Kosum
+      - Kovit
+      - Kraisee
+      - Kraisingha
+      - Kriang Krai
+      - Kriang Sak
+      - Kris
+      - Kukrit
+      - Kulap
+      - Kusa
+      - Kwanchai
+      - Kwang
+      - Kwanjai
+      - Lamai
+      - Lamon
+      - Lawan
+      - Lek
+      - Madee
+      - Mae Noi
+      - Malee
+      - Mali
+      - Malivalaya
+      - Maliwan
+      - Mani
+      - Mayuree
+      - Mee Noi
+      - Mekhala
+      - Mongkut
+      - Muan Nang
+      - Narong
+      - Ngam-Chit
+      - Ngoen
+      - Nin
+      - Niran
+      - Nong Yao
+      - On Choi
+      - 'On'
+      - Paitoon
+      - Pakpao
+      - Pen-Chan
+      - Pensri
+      - Phaibun
+      - Phailin
+      - Phairoh
+      - Phanumas
+      - Phassakorn
+      - Phawta
+      - Phet
+      - Phichai
+      - Phichit
+      - Phitsamai
+      - Phloi
+      - Phueng
+      - Pichai
+      - Pimchan
+      - Piyabutr
+      - Pravat
+      - Prayut
+      - Pricha
+      - Prija
+      - Prisana
+      - Pu Yai Bahn
+      - Puenthai
+      - Pundit
+      - Rama
+      - Ratana
+      - Ratanaporn
+      - Ritthirong
+      - Rochana
+      - Rom Ran
+      - Ruang Rit
+      - Ruang Sak
+      - Runrot
+      - Saengdao
+      - Sajja
+      - Sakda
+      - Samorn
+      - Sanan Nam
+      - Sanoh
+      - Sanouk
+      - Santichai
+      - Sanun
+      - Sanya
+      - Sap
+      - Sarai
+      - Sarakit
+      - Sataheep
+      - Satra
+      - Sawatdi
+      - Seni
+      - Si Fah
+      - Si Mok
+      - Si
+      - Sin
+      - Sinn
+      - Solada
+      - Som Chai
+      - Som Kid
+      - Som Phon
+      - Som Phong
+      - Som Wang
+      - Som
+      - Somchair
+      - Son Chai
+      - Sonchai
+      - Songsuda
+      - Sopa
+      - Sroy
+      - Su Suk
+      - Suchada
+      - Suchin
+      - Sud Saming
+      - Sud
+      - Suda
+      - Sukhon
+      - Sukonta
+      - Sum
+      - Sumalee
+      - Sumana
+      - Sumatra
+      - Sunan
+      - Sunee
+      - Sunstra
+      - Sunti
+      - Sup
+      - Taeng
+      - Tansanee
+      - Tha Kai Bok
+      - Thahan
+      - Thai
+      - Thaklaew
+      - Tham-Boon
+      - Thanom
+      - Thapthim
+      - Thinnakorn
+      - Thong Daeng
+      - Thong Dam
+      - Thong Di
+      - Thong Khao
+      - Thong Kon
+      - Thong Thaem
+      - Thong Thaeng
+      - Thong Thao
+      - Thong
+      - Thuanthong
+      - Ti Nung Cha
+      - Tida
+      - Totsaken
+      - Tukata
+      - Ubol
+      - Udom
+      - Vanida
+      - Vidura
+      - Virote
+      - Waan
+      - Waen
+      - Wila
+      - Winai
+      - Wipa
+      - Xuwicha
+      - Ya Chai
+      - Yindee
+      - Ying
+      - Yod Rak
+      - Yong-Yut
+      - Yu-Pha
+      - Yu-Phin
+      - Yuthakon
+      last_name:
+      - Aromdee
+      - Atitarn
+      - Bunyasarn
+      - Chaiprasit
+      - Chaisurivirat
+      - Chiawat
+      - Jetatikarn
+      - Jetjirawat
+      - Juntasa
+      - Kadesadayurat
+      - Kaewburesai
+      - Kaouthai
+      - Kasamsun
+      - Kitjakarn
+      - Kongkatitum
+      - Kongpaisarn
+      - Kongsangchai
+      - Kraiputra
+      - Kunakorn
+      - Kunchai
+      - Kurusarttra
+      - Leekpai
+      - Leelapun
+      - Lertkunakorn
+      - Maleenon
+      - Maneerattana
+      - Meesang
+      - Narkbunnum
+      - Narkhirunkanok
+      - Nimitwanitch
+      - Ornlamai
+      - Paowsong
+      - Parnpradub
+      - Parnthong
+      - Pornpipatpong
+      - Prasongsanti
+      - Puntasrima
+      - Punyawong
+      - Rojjanasukchai
+      - Rojumanong
+      - Saenamuang
+      - Sakda
+      - Sangsorn
+      - Shinawatra
+      - Sirisopa
+      - Somwan
+      - Songprawati
+      - Sripituksakul
+      - Srisati
+      - Sriwarunyu
+      - Sukbunsung
+      - Suntornnitikul
+      - Suppamongkon
+      - Suttirat
+      - Tawisuwan
+      - Thumying
+      - Tuntayakul
+      - Udomprecha
+      - Vipavakit
+      - Visalyaputra
+      - Wattanapanit
+      - Wattanasin
+      - Yongjaiyut
diff --git a/faker/lib/locales/en/color.yml b/faker/lib/locales/en/color.yml
--- a/faker/lib/locales/en/color.yml
+++ b/faker/lib/locales/en/color.yml
@@ -1,4 +1,4 @@
 en:
   faker:
     color:
-      name: [red, green, blue, yellow, purple, mint green, teal, white, black, orange, pink, grey, maroon, violet, turquoise, tan, sky blue, salmon, plum, orchid, olive, magenta, lime, ivory, indigo, gold, fuchsia, cyan, azure, lavender, silver]
+      name: [red, green, blue, yellow, purple, teal, white, black, orange, pink, grey, maroon, violet, turquoise, tan, sky blue, salmon, plum, orchid, olive, magenta, lime, ivory, indigo, gold, fuchsia, cyan, azure, lavender, silver]
diff --git a/faker/lib/locales/en/dr_who.yml b/faker/lib/locales/en/dr_who.yml
--- a/faker/lib/locales/en/dr_who.yml
+++ b/faker/lib/locales/en/dr_who.yml
@@ -41,7 +41,7 @@
         "Aw, I wanted to be ginger! I've never been ginger!",
         "Crossing into established events is strictly forbidden. Except for cheap tricks.",
       ]
-      villians: [
+      villains: [
         "Helen A", "Abzorbaloff", "Animus", "The Master", "Davros", "Dalek Emperor"
       ]
       species: [
diff --git a/faker/lib/locales/en/super_smash_bros.yml b/faker/lib/locales/en/super_smash_bros.yml
--- a/faker/lib/locales/en/super_smash_bros.yml
+++ b/faker/lib/locales/en/super_smash_bros.yml
@@ -75,6 +75,7 @@
           - Snake
           - Sonic
           - Squirtle
+          - Terry Bogard
           - Toon Link
           - Villager
           - Wario
diff --git a/faker/lib/locales/fr-CA.yml b/faker/lib/locales/fr-CA.yml
--- a/faker/lib/locales/fr-CA.yml
+++ b/faker/lib/locales/fr-CA.yml
@@ -2,7 +2,7 @@
   faker:
     address:
       postcode: /[A-CEJ-NPR-TVXY][0-9][A-CEJ-NPR-TV-Z] ?[0-9][A-CEJ-NPR-TV-Z][0-9]/
-      state: [Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Nova Scotia, Northwest Territories, Nunavut, Ontario, Prince Edward Island, Quebec, Saskatchewan, Yukon]
+      state: ["Alberta", "Colombie-Britannique", "Île-du-Prince-Édouard", "Manitoba", "Nouveau-Brunswick", "Nouvelle-Écosse", "Nunavut", "Ontario", "Terre-Neuve-et-Labrador", "Territoires du Nord-Ouest", "Québec", "Saskatchewan", "Yukon"]
       state_abbr: ["AB", "BC", "MB", "NB", "NL", "NS", "NU", "NT", "ON", "PE", "QC", "SK", "YT"]
       country_code: ['CA']
       building_number: ['####', '###', '##', '#']
diff --git a/faker/lib/locales/ja.yml b/faker/lib/locales/ja.yml
--- a/faker/lib/locales/ja.yml
+++ b/faker/lib/locales/ja.yml
@@ -12,16 +12,22 @@
         - "#{city_prefix}#{Name.last_name}#{city_suffix}"
         - "#{Name.last_name}#{city_suffix}"
       street_name:
-        - "#{Name.first_name}#{street_suffix}"
-        - "#{Name.last_name}#{street_suffix}"
+        - "#{Name.first_name}"
+        - "#{Name.last_name}"
       default_country: [日本]
+    bank:
+      name: ["日本銀行", "みずほ銀行", "三菱ＵＦＪ銀行", "三井住友銀行", "りそな銀行", "埼玉りそな銀行", "三菱UFJ信託銀行", "みずほ信託銀行", "三井住友信託銀行", "バンクオブニューヨークメロン信託銀行", "日本マスタートラスト信託銀行", "野村信託銀行", "オリックス銀行", "あおぞら信託銀行", "農中信託銀行", "中央三井アセット信託銀行", "新生信託銀行", "日証金信託銀行", "日本トラスティ・サービス信託銀行", "資産管理サービス信託銀行", "株式会社ＳＭＢＣ信託銀行", "新生銀行", "あおぞら銀行", "ジャパンネット銀行", "セブン銀行", "ソニー銀行", "楽天銀行", "住信SBIネット銀行", "じぶん銀行", "イオン銀行", "大和ネクスト銀行", "北海道銀行", "青森銀行", "みちのく銀行", "秋田銀行", "北都銀行", "荘内銀行", "山形銀行", "岩手銀行", "東北銀行", "七十七銀行", "東邦銀行", "北洋銀行", "きらやか銀行", "北日本銀行", "仙台銀行", "福島銀行", "大東銀行", "群馬銀行", "足利銀行", "常陽銀行", "筑波銀行", "武蔵野銀行", "千葉銀行", "千葉興業銀行", "横浜銀行", "東和銀行", "栃木銀行", "京葉銀行", "きらぼし銀行", "東日本銀行", "東京スター銀行", "神奈川銀行", "第四銀行", "北越銀行", "山梨中央銀行", "八十二銀行", "北陸銀行", "富山銀行", "北國銀行", "福井銀行", "大光銀行", "長野銀行", "富山第一銀行", "福邦銀行", "静岡銀行", "スルガ銀行", "清水銀行", "大垣共立銀行", "十六銀行", "三重銀行", "百五銀行", "静岡中央銀行", "愛知銀行", "名古屋銀行", "中京銀行", "第三銀行", "滋賀銀行", "京都銀行", "近畿大阪銀行", "池田泉州銀行", "南都銀行", "紀陽銀行", "但馬銀行", "関西みらい銀行", "大正銀行", "みなと銀行", "鳥取銀行", "山陰合同銀行", "中国銀行", "広島銀行", "山口銀行", "阿波銀行", "百十四銀行", "伊予銀行", "四国銀行", "島根銀行", "トマト銀行", "もみじ銀行", "西京銀行", "徳島銀行", "香川銀行", "愛媛銀行", "高知銀行", "福岡銀行", "筑邦銀行", "西日本シティ銀行", "北九州銀行", "佐賀銀行", "十八銀行", "親和銀行", "肥後銀行", "大分銀行", "宮崎銀行", "鹿児島銀行", "琉球銀行", "沖縄銀行", "福岡中央銀行", "佐賀共栄銀行", "長崎銀行", "熊本銀行", "豊和銀行", "宮崎太陽銀行", "南日本銀行", "沖縄海邦銀行"]
+    creature:
+      animal:
+        name: ["ホンドテン", "ホワイトタイガー", "コツメカワウソ", "マンドリル", "エランド", "アムールヒョウ", "ブラッザグエノン", "カバ", "アルパカ", "ポニー", "オウサマペンギン", "アンデスコンドル", "オシドリ", "チーター", "ホンドリス", "ホンシュウジカ", "タンチョウ", "レッサーパンダ", "アメリカビーバー", "ジェフロイクモザル", "カピバラ", "マレーバク", "アカゲザル", "フンボルトペンギン", "パルマワラビー", "ビルマニシキヘビ", "アカカンガルー", "ワオキツネザル", "ラブラドールレトリバー", "アルダブラゾウガメ", "モルモット", "ヒヨコ（ニワトリ）", "ヤギ", "ヒツジ", "ウサギ", "ブラックバック", "シロクジャク", "ヒグマ", "アクシスジカ", "ヒクイドリ", "エミュー", "アフリカゾウ", "フラミンゴ", "シタツンガ", "ハゴロモヅル", "エジプトガン", "ライオン", "ミーアキャット", "ホオジロカンムリヅル", "コフラミンゴ", "ショウジョウトキ", "オウギバト", "ホンドフクロウ", "ホンドタヌキ", "ホンドキツネ", "オオワシ", "ヘビクイワシ", "コクチョウ", "アメリカバイソン", "ワピチ", "ミナミアフリカオットセイ", "ゴマフアザラシ", "アビシニアコロブス", "マントヒヒ", "シロテテナガザル", "シシオザル", "モモイロペリカン", "コモンリスザル", "オオサイチョウ", "シワコブサイチョウ", "メガネカイマン", "ラマ", "フタコブラクダ", "シナガチョウ", "アライグマ", "エジプトルーセットオオコウモリ", "アフリカタテガミヤマアラシ", "キリン", "ダチョウ", "シロサイ", "シマウマ", "バーバリーシープ"]
+      cat:
+        breed: ["アジアンセミロングヘア", "アビシニアン", "アメリカンカール", "アメリカンショートヘア", "アメリカンボブテイル", "アメリカンワイヤーヘア", "アラビアンマウ", "イジアン", "エキゾチックショートヘア", "エキゾチックフォールド", "エジプシャンマウ", "オーストラリアンミスト", "オシキャット", "オリエンタルショートヘア", "カオマニー", "キムリック", "キンカロー", "コーニッシュレックス", "コラット", "サイベリアン", "ジャパニーズボブテイル", "シャム", "シャルトリュー", "シンガプーラ", "ラパーマ", "リュコイ", "ジャーマンレックス", "ハバマブラウン", "ハイランダーリンクス", "スコティッシュフォールド", "スノーシュー", "スフィンクス", "セルカークレックス", "ソマリ", "クリルアイランドボブテイル", "ターキッシュアンゴラ", "ターキッシュバン", "チャウシー", "チートー", "カラーポイントショートヘア", "コーニッシュレックス", "デボンレックス", "ドンスコイ", "ドラゴンリー", "ヨーロピアンショートヘア", "デボンレックス", "トンキニーズ", "ノルウェージャンフォレストキャット", "バーマン", "バーミーズ", "バーミラ", "バリニーズ", "シャンティリー", "バンビーノ", "ヒマラヤン", "メコンボブテイル", "ミンスキン", "ブラジリアンショートヘア", "ブリティッシュロングヘア", "ブリティッシュショートヘア", "カリフォルニアスパングルド", "ペルシャ", "ベンガル", "ボンベイ", "マンクス", "マンチカン", "ミヌエット", "メインクーン", "ヨーロピアンバーミーズ", "ラガマフィン", "ラグドール", "ラパーマ", "ラムキン", "ロシアンブルー"]
+      dog:
+        breed: ["アーフェンピンシャー", "アイリッシュ・ウォーター・スパニエル", "アイリッシュ・ウルフハウンド", "アイリッシュ・セッター", "アイリッシュ・テリア", "アッペンツェラー・キャトル・ドッグ", "アフガン・ハウンド", "アメリカン・エスキモー・ドッグ", "アメリカン・スタッフォードシャー・テリア", "アラスカン・マラミュート", "イタリアン・グレイハウンド", "イビザン・ハウンド", "イングリッシュ・コッカー・スパニエル", "イングリッシュ・スプリンガー・スパニエル", "イングリッシュ・セッター", "イングリッシュ･トイ･テリア", "イングリッシュ・フォックスハウンド", "ウィペット", "ウエスト・ハイランド・ホワイト・テリア", "ウェルシュ・コーギー・カーディガン", "ウェルシュ・コーギー・ペンブローク", "ウェルシュ・スプリンガー・スパニエル", "エアデール・テリア", "エントレブッハー・キャトル・ドッグ", "オーストラリアン・ケルピー", "オーストラリアン・シルキー・テリア", "オーストラリアン・テリア", "オールド・イングリッシュ・シープドッグ", "オッターハウンド", "カーリーコーテッド・レトリーバー", "キースホンド", "キャバリア・キング・チャールズ・スパニエル", "クーバース", "クーンハウンド", "クランバー・スパニエル", "グレーター・スイス・マウンテン・ドッグ", "グレート・デーン", "グレート・ピレニーズ", "ケアーン・テリア", "ケリー・ブルー・テリア", "ゴードン・セッター", "ゴールデン・レトリバー", "コモンドール", "サセックス・スパニエル", "サモエド", "サルーキ", "シーズー", "シーリハム・テリア", "シェットランド・シープドッグ", "シベリアン・ハスキー", "ジャーマン・シェパード・ドッグ", "ジャーマン・ショートヘアード・ポインター", "ジャイアント・シュナウザー", "ショートヘアード・ハンガリアン・ビズラ", "スキッパーキ", "スコティッシュ・ディアハウンド", "スコティッシュ・テリア", "スタッフォードシャー・ブル・テリア", "スタンダード・プードル", "セント・バーナード", "ソフトコーテッド・ウィートン・テリア", "ダックスフント", "ダンディ・ディンモント・テリア", "チェサピーク・ベイ・レトリーバー", "チベタン・テリア", "チベタン・マスティフ", "チャウ・チャウ", "チワワ", "ツリーイング・ウォーカー・クーンハウンド", "ディンゴ", "トイ・プードル", "ドーベルマン", "ドール", "ニューファンドランド", "ノーフォーク・テリア", "ノーリッチ・テリア", "ノルウェジアン・エルクハウンド・グレー", "バーニーズ・マウンテン・ドッグ", "パグ", "バセット・ハウンド", "バセンジー", "パタデール・テリア", "パピヨン", "ビーグル", "ブービエ・デ・フランダース", "フォックス・テリア", "フラットコーテッド・レトリーバー", "ブラッドハウンド", "ブリアード", "ブリタニー・スパニエル", "ブリュッセル・グリフォン", "ブルーティック・クーンハウンド", "ブルマスティフ", "フレンチ・ブルドッグ", "ペキニーズ", "ベドリントン・テリア", "ベルジアン・シェパード・ドッグ・グローネンダール", "ベルジアン・シェパード・ドッグ・マリノア", "ボーダー・コリー", "ボーダー・テリア", "ボクサー", "ボストンテリア", "ポメラニアン", "ボルゾイ", "マルチーズ", "ミニチュア・シュナウザー", "ミニチュア・ピンシャー", "ミニチュア・プードル", "メキシカン・ヘアレス・ドッグ", "ヨークシャー・テリア", "ラサ・アプソ", "ラット・テリア", "ラブラドール・レトリバー", "リカオン", "レークランド・テリア", "レオンベルガー", "レッドボーン・クーンハウンド", "ローデシアン・リッジバック", "ロットワイラー", "ワイマラナー", "柴犬", "秋田犬", "狆"]
 
     ancient:
       god: ["アフロディテ", "アポロン", "アレス", "アルテミス", "アテナ", "デメテル", "ディオニュソス", "ハデス", "ヘパイストス", "ヘラ", "ヘルメス", "ヘスティア", "ポセイドン", "ゼウス"]
 
-    cat:
-      breed: ["アジアンセミロングヘア", "アビシニアン", "アメリカンカール", "アメリカンショートヘア", "アメリカンボブテイル", "アメリカンワイヤーヘア", "アラビアンマウ", "イジアン", "エキゾチックショートヘア", "エキゾチックフォールド", "エジプシャンマウ", "オーストラリアンミスト", "オシキャット", "オリエンタルショートヘア", "カオマニー", "キムリック", "キンカロー", "コーニッシュレックス", "コラット", "サイベリアン", "ジャパニーズボブテイル", "シャム", "シャルトリュー", "シンガプーラ", "ラパーマ", "リュコイ", "ジャーマンレックス", "ハバマブラウン", "ハイランダーリンクス", "スコティッシュフォールド", "スノーシュー", "スフィンクス", "セルカークレックス", "ソマリ", "クリルアイランドボブテイル", "ターキッシュアンゴラ", "ターキッシュバン", "チャウシー", "チートー", "カラーポイントショートヘア", "コーニッシュレックス", "デボンレックス", "ドンスコイ", "ドラゴンリー", "ヨーロピアンショートヘア", "デボンレックス", "トンキニーズ", "ノルウェージャンフォレストキャット", "バーマン", "バーミーズ", "バーミラ", "バリニーズ", "シャンティリー", "バンビーノ", "ヒマラヤン", "メコンボブテイル", "ミンスキン", "ブラジリアンショートヘア", "ブリティッシュロングヘア", "ブリティッシュショートヘア", "カリフォルニアスパングルド", "ペルシャ", "ベンガル", "ボンベイ", "マンクス", "マンチカン", "ミヌエット", "メインクーン", "ヨーロピアンバーミーズ", "ラガマフィン", "ラグドール", "ラパーマ", "ラムキン", "ロシアンブルー"]
-
     cell_phone:
       formats: ['090-####-####', '080-####-####', '070-####-####']
 
@@ -37,9 +43,6 @@
       name:
         - "#{Name.last_name}#{category}#{suffix}"
         - "#{suffix}#{Name.last_name}#{category}"
-
-    dog:
-      bread: ["アーフェンピンシャー", "アイリッシュ・ウォーター・スパニエル", "アイリッシュ・ウルフハウンド", "アイリッシュ・セッター", "アイリッシュ・テリア", "アッペンツェラー・キャトル・ドッグ", "アフガン・ハウンド", "アメリカン・エスキモー・ドッグ", "アメリカン・スタッフォードシャー・テリア", "アラスカン・マラミュート", "イタリアン・グレイハウンド", "イビザン・ハウンド", "イングリッシュ・コッカー・スパニエル", "イングリッシュ・スプリンガー・スパニエル", "イングリッシュ・セッター", "イングリッシュ･トイ･テリア", "イングリッシュ・フォックスハウンド", "ウィペット", "ウエスト・ハイランド・ホワイト・テリア", "ウェルシュ・コーギー・カーディガン", "ウェルシュ・コーギー・ペンブローク", "ウェルシュ・スプリンガー・スパニエル", "エアデール・テリア", "エントレブッハー・キャトル・ドッグ", "オーストラリアン・ケルピー", "オーストラリアン・シルキー・テリア", "オーストラリアン・テリア", "オールド・イングリッシュ・シープドッグ", "オッターハウンド", "カーリーコーテッド・レトリーバー", "キースホンド", "キャバリア・キング・チャールズ・スパニエル", "クーバース", "クーンハウンド", "クランバー・スパニエル", "グレーター・スイス・マウンテン・ドッグ", "グレート・デーン", "グレート・ピレニーズ", "ケアーン・テリア", "ケリー・ブルー・テリア", "ゴードン・セッター", "ゴールデン・レトリバー", "コモンドール", "サセックス・スパニエル", "サモエド", "サルーキ", "シーズー", "シーリハム・テリア", "シェットランド・シープドッグ", "シベリアン・ハスキー", "ジャーマン・シェパード・ドッグ", "ジャーマン・ショートヘアード・ポインター", "ジャイアント・シュナウザー", "ショートヘアード・ハンガリアン・ビズラ", "スキッパーキ", "スコティッシュ・ディアハウンド", "スコティッシュ・テリア", "スタッフォードシャー・ブル・テリア", "スタンダード・プードル", "セント・バーナード", "ソフトコーテッド・ウィートン・テリア", "ダックスフント", "ダンディ・ディンモント・テリア", "チェサピーク・ベイ・レトリーバー", "チベタン・テリア", "チベタン・マスティフ", "チャウ・チャウ", "チワワ", "ツリーイング・ウォーカー・クーンハウンド", "ディンゴ", "トイ・プードル", "ドーベルマン", "ドール", "ニューファンドランド", "ノーフォーク・テリア", "ノーリッチ・テリア", "ノルウェジアン・エルクハウンド・グレー", "バーニーズ・マウンテン・ドッグ", "パグ", "バセット・ハウンド", "バセンジー", "パタデール・テリア", "パピヨン", "ビーグル", "ブービエ・デ・フランダース", "フォックス・テリア", "フラットコーテッド・レトリーバー", "ブラッドハウンド", "ブリアード", "ブリタニー・スパニエル", "ブリュッセル・グリフォン", "ブルーティック・クーンハウンド", "ブルマスティフ", "フレンチ・ブルドッグ", "ペキニーズ", "ベドリントン・テリア", "ベルジアン・シェパード・ドッグ・グローネンダール", "ベルジアン・シェパード・ドッグ・マリノア", "ボーダー・コリー", "ボーダー・テリア", "ボクサー", "ボストンテリア", "ポメラニアン", "ボルゾイ", "マルチーズ", "ミニチュア・シュナウザー", "ミニチュア・ピンシャー", "ミニチュア・プードル", "メキシカン・ヘアレス・ドッグ", "ヨークシャー・テリア", "ラサ・アプソ", "ラット・テリア", "ラブラドール・レトリバー", "リカオン", "レークランド・テリア", "レオンベルガー", "レッドボーン・クーンハウンド", "ローデシアン・リッジバック", "ロットワイラー", "ワイマラナー", "柴犬", "秋田犬", "狆"]
 
     food:
       sushi: ["アオヤギ", "アカガイ", "アジ", "アナゴ", "アマエビ", "アワビ", "イカ", "イクラ", "ウナギ", "カキ", "カツオ", "カニ", "カンパチ", "キス", "コハダ", "サーモン", "サザエ", "サバ", "サヨリ", "サワラ", "シマアジ", "シラコ", "スズキ", "タイ", "タコ", "タマゴ", "ノドグロ", "ハマグリ", "ハマチ", "ヒラメ", "ブリ", "ホタテ", "ホタルイカ", "ボタンエビ", "マグロ", "マス", "ミルガイ"]
diff --git a/faker/lib/locales/th.yml b/faker/lib/locales/th.yml
new file mode 100644
--- /dev/null
+++ b/faker/lib/locales/th.yml
@@ -0,0 +1,380 @@
+th:
+  faker:
+    name:
+      first_name:
+      - สิริกิติ์
+      - อภิสิทธิ์ 
+      - อดิศักดิ์
+      - อักขระ
+      - อริศรา
+      - อมร
+      - อมรรัตน์
+      - อนันต์
+      - อนันตชัย
+      - อาณัติ
+      - อนุชา
+      - อภิชาติ
+      - อภิชาต
+      - อภิรักษ์
+      - อภิศักดิ์
+      - อภิญญา 
+      - อารี 
+      - อารีพงศ์
+      - อารง
+      - อาทิตย์ 
+      - อรุณศรี
+      - อัษรา
+      - อัษฎา 
+      - บัณฑิตา
+      - บัญญัติ
+      - บุญศรี
+      - บุญรัตน์
+      - บุญเยี่ยม
+      - บุญยง
+      - บุษราคัม 
+      - บุศวรรณ
+      - ชัยอนันต์
+      - ชัยพร
+      - จักรี 
+      - เฉลิม 
+      - ฉลวย
+      - ชนะ 
+      - ชาญชัย
+      - ชนินทร์
+      - ชนิภรณ์ 
+      - จันทร์สิริ
+      - เชาวน์
+      - ชาติชาย
+      - ชาติ 
+      - จตุพล
+      - ชิด 
+      - ชมเกดุ
+      - ชุ่ม
+      - ชวน 
+      - จุลภาส
+      - ชูวิทย์
+      - ดนัย
+      - แดง 
+      - ดวงใจ
+      - ดวงกมล 
+      - เดือนเพ็ญ 
+      - ดุสิต 
+      - เอกใหม่
+      - เอกพงษ์
+      - ฟุ้งฟ้า
+      - กานดา 
+      - แก้วเก้า
+      - หทัย
+      - จารุวรรณ
+      - เจือ 
+      - กมล
+      - กาญจนา
+      - กนกพร
+      - เกษม
+      - ขจี
+      - ขนิษฐา
+      - คลัง 
+      - ขวัญจิต
+      - กล้าหาญ
+      - กระสินธ์ 
+      - กฤษฏิ์
+      - กุมโชค
+      - กุญชนิตา
+      - กุลพันธ์
+      - ขวัญชัย
+      - ขวัญใจ
+      - มาลี
+      - มะลิ 
+      - มาณี
+      - มณี 
+      - มานิจ
+      - มโน
+      - มณู
+      - มนู
+      - มานิตย์ 
+      - มารวย
+      - มงคล 
+      - มนตรี 
+      - มุกดา 
+      - นาค 
+      - นัยนา 
+      - นาก 
+      - เนาวรัตน์
+      - นภสร
+      - นรินทร์ศักดิ์
+      - นริศา
+      - ณรงค์ศักดิ์
+      - นฤมล
+      - นววรรณ
+      - ณี
+      - หนิว
+      - นีราชา
+      - นิตยา
+      - นงลักษณ์
+      - นงนุช
+      - นพดล
+      - นพคุณ
+      - นพรัตน์
+      - ณัฎฐา
+      - ณัฐิมา
+      - ไพรัช
+      - ไพฑูรย์ 
+      - ปานใจ
+      - ผาณิต
+      - พนิต
+      - พรรณี
+      - พนม
+      - ปานเทพ
+      - ภานุพัฒน์
+      - ปาริชาติ
+      - ปริญญา 
+      - ภาสุระ
+      - พัชรพร
+      - พาที
+      - ปฐม 
+      - ปฏิภาณ
+      - พัฒนา 
+      - ปวีณา
+      - เพ็ญสุขภรณ์
+      - ปีย์รติ
+      - เพิ่ม 
+      - เผด็จ
+      - ไพบูลย์
+      - ไพศักดิ์
+      - ไพศาล
+      - พาณิชย์ 
+      - พยนต์ 
+      - พิชิต 
+      - พิจิตร 
+      - พิมพ์ใจ
+      - พินิจ
+      - พิภพ 
+      - พิริยะ
+      - ภิรมย์
+      - พลเดช
+      - ผ่องเพ็ญ
+      - ภรณ์พรรณ
+      - ภรณ์พันธ์
+      - พรพันธุ์
+      - ภรณ์พันธุ์
+      - พรพรรณ
+      - พรรัมภา
+      - ภุชงค์
+      - ภูมินทร์
+      - ภูมิพัฒน์
+      - พูนศักดิ์
+      - พิกุล
+      - พิมพ์วสี
+      - ปิติ
+      - ปีติ
+      - ปิยบุตร
+      - ปิยะคม
+      - ปิยวรรณ
+      - ป้อง 
+      - พรชัย
+      - ประชา 
+      - ประดิษฐ์
+      - ประมนต์
+      - ประมุข 
+      - ปราณี
+      - ประพันธ์ 
+      - ประภาส
+      - ประสาน
+      - ประเสริฐ
+      - ประสิทธิ 
+      - ประสงค์ 
+      - ประทีป
+      - ประทุม
+      - ปรัชญา 
+      - ประเวช
+      - ประเวศ
+      - ประวิตร
+      - ประวิทย์
+      - ปรีชา
+      - ปรีดา
+      - เปรม
+      - ปัญญา
+      - ราม
+      - รินรดา
+      - รอง 
+      - ฤดี
+      - รื่น
+      - รื่นฤดี
+      - รุ่งสิทธิ์
+      - รัตน์ 
+      - ฤทัย 
+      - แสงดาว
+      - สายพิณ
+      - สายสมร
+      - ศักดา
+      - สากล 
+      - ศักดิ์ทิพย์
+      - สกุล 
+      - สลิลธร
+      - สมัคร 
+      - สามารถ 
+      - สมร 
+      - สนั่น
+      - สังวาล
+      - สนิท 
+      - สันติ 
+      - สริตา
+      - ศศิธร 
+      - สาธิต
+      - สาธิตยัง
+      - สว่าง 
+      - สวัสดิ์
+      - สาวิทย์
+      - เสรี 
+      - เซติอาวัน
+      - เซติยัง
+      - สิงห์ 
+      - ศิริ
+      - ศิริโชค
+      - ศิริณี
+      - ศิริพล
+      - ศิริพงศ์
+      - ศิริพร
+      - สิริรักษ์
+      - ศิริรัตน์
+      - ศิริวรรณ
+      - สีห์ศักดิ์
+      - ศรีศักดิ์
+      - สิทธิ 
+      - โสภาค
+      - สมบัติ 
+      - สมบูรณ์ 
+      - สมบุญ
+      - สมชาย
+      - สมโชค
+      - สมคิด
+      - สมควร 
+      - สมลักษณ์
+      - สมหมาย
+      - สมเพียร
+      - สมภพ
+      - สมพงษ์
+      - สมพร
+      - สมรัตน์
+      - สมศักดิ์
+      - สมทรง
+      - สมศรี
+      - สมยศ
+      - สนธิ
+      - สุนทรี
+      - สุชาดา
+      - สุชาดาจะ
+      - สุชาย
+      - สุชาติ
+      - สุจินดา
+      - สุดา
+      - สุกัญญา
+      - สุหัตถ์
+      - สุจิต
+      - สุเมธ
+      - สุนัย
+      - สุนีย์
+      - สุนี
+      - ศุภชัย
+      - สุภาภรณ์
+      - ศุภวิทย์
+      - สุพรรณ 
+      - สุภาพ 
+      - ศุภวุฒิ
+      - สุพิชา
+      - สุพิศ
+      - ศุภผล
+      - ศุภรัตน์
+      - สุประภา
+      - สุรัตน์
+      - สุรี
+      - สุริยะ
+      - สุริยา
+      - สุธรรม
+      - สุเทพ
+      - สุทธิพล
+      - สุทธิพงศ์
+      - สุวรรณ
+      - สุวิชา
+      - สุวิทย์
+      - ธเนศ
+      - ตนุพล
+      - ธีรศักดิ์
+      - ทักษิณ
+      - ธนากร
+      - ธนาพร
+      - ถนัด 
+      - ทวีฉัตร
+      - ถวิล
+      - ทวีป 
+      - ทวีศักดิ์
+      - ทวีวงศ์
+      - ธีรภัทร
+      - ฐิตวรรณ
+      - ฐิติภรณ์
+      - ธงชัย
+      - ทัศนีย์
+      - อุบล
+      - อุบลวรรณ
+      - อุดม 
+      - อุกิต
+      - อัญญาณี
+      - วีระ
+      - วิโรจน์
+      - วรภัทร
+      - วานี
+      - วัลลภา
+      - วัลลภ
+      - วรรณ
+      - วรรณา
+      - วันพล
+      - วราภรณ์
+      - วัชราภรณ์
+      - วัฒนา
+      - วิชัย
+      - วิจารณ์ 
+      - วิเชียร
+      - วิจิตร 
+      - วิลาศ
+      - วินัย 
+      - วีรยุทธ์
+      - วิภา
+      - วิภาภรณ์
+      - วีระ
+      - วีระชาย
+      - วีระชาติ
+      - วีระพันธุ์
+      - วีระพล
+      - วีรศักดิ์
+      - วีระศักดิ์
+      - วิรัช
+      - วิริยะ
+      - วิเศษ 
+      - วิศิษฏ์
+      - วิทยา 
+      - วรพร
+      - ญาณิน
+      - ยิ่งยศ
+      - ยุพิน
+      - ยุทธ์
+      - ยุวรัตน์
+      - เยาวพา
+      - อุกฤษฏ์
+      - สุดใจ
+      - สมจิต
+      last_name:
+      - เคนเนะดิ 
+      - ชินวัตร
+      - ตั้งตระกูล
+      - ติณสูลานนท์
+      - บุตโต
+      - พิศาลบุตร
+      - วอชิงตัน
+      - สมิท
+      - บราวน์
+      - สมิธ
+      - รักไทย
+      - เก่งงาน
+      - หงสกุล
+      - สโตเกอร์
+      - พันธุเมธา
diff --git a/src/Faker/Provider/DrWho.hs b/src/Faker/Provider/DrWho.hs
--- a/src/Faker/Provider/DrWho.hs
+++ b/src/Faker/Provider/DrWho.hs
@@ -50,9 +50,9 @@
 
 $(genProvider "drWho" "quotes")
 
-$(genParser "drWho" "villians")
+$(genParser "drWho" "villains")
 
-$(genProvider "drWho" "villians")
+$(genProvider "drWho" "villains")
 
 $(genParser "drWho" "species")
 
diff --git a/src/Faker/TvShow/DrWho.hs b/src/Faker/TvShow/DrWho.hs
--- a/src/Faker/TvShow/DrWho.hs
+++ b/src/Faker/TvShow/DrWho.hs
@@ -19,6 +19,6 @@
 
 $(generateFakeField "drWho" "quotes")
 
-$(generateFakeField "drWho" "villians")
+$(generateFakeField "drWho" "villains")
 
 $(generateFakeField "drWho" "species")
diff --git a/test/AddressSpec.hs b/test/AddressSpec.hs
--- a/test/AddressSpec.hs
+++ b/test/AddressSpec.hs
@@ -11,7 +11,7 @@
 import Faker hiding (defaultFakerSettings)
 import Faker.Address
 import Faker.Internal
-import Faker.Provider.Address
+-- import Faker.Provider.Address
 import Test.Hspec
 import TestImport
 
@@ -21,20 +21,20 @@
 spec :: Spec
 spec = do
   describe "Address" $ do
-    it "parses countries for defaultSettings" $ do
-      ctries <- countryProvider defaultFakerSettings
-      ctries `shouldSatisfy` (\x -> V.length x >= 40)
-    it "parses countryByCode for defaultSettings" $ do
-      ctries <- countryByCodeProvider defaultFakerSettings
-      ctries `shouldSatisfy` (\x -> Prelude.length (M.toList x) >= 40)
-    it "parses countries for other locales" $ do
-      locales <- populateLocales
-      let settings :: [FakerSettings] =
-            map (\l -> setLocale l defaultFakerSettings) locales
-          ctries :: IO [V.Vector Text] = mapM countryProvider settings
-      ctries' :: [V.Vector Text] <- ctries
-      let exp :: [Bool] = map (\x -> V.length x >= 10) ctries'
-      True `shouldBe` (all (\x -> x == True) exp)
+    -- it "parses countries for defaultSettings" $ do
+    --   ctries <- countryProvider defaultFakerSettings
+    --   ctries `shouldSatisfy` (\x -> V.length x >= 40)
+    -- it "parses countryByCode for defaultSettings" $ do
+    --   ctries <- countryByCodeProvider defaultFakerSettings
+    --   ctries `shouldSatisfy` (\x -> Prelude.length (M.toList x) >= 40)
+    -- it "parses countries for other locales" $ do
+    --   locales <- populateLocales
+    --   let settings :: [FakerSettings] =
+    --         map (\l -> setLocale l defaultFakerSettings) locales
+    --       ctries :: IO [V.Vector Text] = mapM countryProvider settings
+    --   ctries' :: [V.Vector Text] <- ctries
+    --   let exp :: [Bool] = map (\x -> V.length x >= 10) ctries'
+    --   True `shouldBe` (all (\x -> x == True) exp)
     it "produces random integer text" $ do
       let txt = interpolateNumbers defaultFakerSettings "#####"
       let num :: Int = read (unpack txt)
@@ -83,9 +83,9 @@
         , "state_abbr"
         , "zip_code"
         ]
-    it "resolveAddressField" $ do
-      item <- resolveAddressField defaultFakerSettings "community_suffix"
-      item `shouldSatisfy` (\x -> T.length x > 0)
+    -- it "resolveAddressField" $ do
+    --   item <- resolveAddressField defaultFakerSettings "community_suffix"
+    --   item `shouldSatisfy` (\x -> T.length x > 0)
     it "uncons2" $ do
       let item = uncons2 "hello"
       item `shouldBe` Just ("he" :: String, "llo" :: Text)
@@ -113,68 +113,68 @@
         let item =
               operateFields " #{hello} #{world} kool" ["jam", "kool", "name"]
         item `shouldBe` " jam kool kool"
-    it "resolveAddressText" $ do
-      item <-
-        resolveAddressText
-          defaultFakerSettings
-          "#{community_prefix} #{community_suffix}"
-      item `shouldSatisfy` (\x -> T.length x > 0 && T.any (== ' ') item)
-    describe "Resolver check" $ do
-      it "community" $ do
-        item <-
-          resolveAddressText
-            defaultFakerSettings
-            "#{community_prefix} #{community_suffix}"
-        item `shouldSatisfy` (\x -> T.length x >= 5)
-      it "community via function" $ do
-        comm <- communityProvider defaultFakerSettings
-        item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
-        item `shouldSatisfy` (\x -> T.length x >= 5)
-      it "building_number" $ do
-        comm <- buildingNumberProvider defaultFakerSettings
-        item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
-        item `shouldSatisfy` (\x -> T.length x >= 3)
-      it "secondary_address" $ do
-        comm <- secondaryAddressProvider defaultFakerSettings
-        item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
-        item `shouldSatisfy` (\x -> T.length x >= 5)
-      it "street_address" $ do
-        item <-
-          resolveAddressText
-            defaultFakerSettings
-            "#{Name.last_name} #{street_suffix}"
-        item `shouldSatisfy` (\x -> T.length x >= 5)
-      it "street_address via function" $ do
-        comm <- streetAddressProvider defaultFakerSettings
-        item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
-        item `shouldSatisfy` (\x -> T.length x >= 5)
+    -- it "resolveAddressText" $ do
+    --   item <-
+    --     resolveAddressText
+    --       defaultFakerSettings
+    --       "#{community_prefix} #{community_suffix}"
+    --   item `shouldSatisfy` (\x -> T.length x > 0 && T.any (== ' ') item)
+    -- describe "Resolver check" $ do
+    --   it "community" $ do
+    --     item <-
+    --       resolveAddressText
+    --         defaultFakerSettings
+    --         "#{community_prefix} #{community_suffix}"
+    --     item `shouldSatisfy` (\x -> T.length x >= 5)
+      -- it "community via function" $ do
+      --   comm <- communityProvider defaultFakerSettings
+      --   item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
+      --   item `shouldSatisfy` (\x -> T.length x >= 5)
+      -- it "building_number" $ do
+      --   comm <- buildingNumberProvider defaultFakerSettings
+      --   item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
+      --   item `shouldSatisfy` (\x -> T.length x >= 3)
+      -- it "secondary_address" $ do
+      --   comm <- secondaryAddressProvider defaultFakerSettings
+      --   item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
+      --   item `shouldSatisfy` (\x -> T.length x >= 5)
+      -- it "street_address" $ do
+      --   item <-
+      --     resolveAddressText
+      --       defaultFakerSettings
+      --       "#{Name.last_name} #{street_suffix}"
+      --   item `shouldSatisfy` (\x -> T.length x >= 5)
+      -- it "street_address via function" $ do
+      --   comm <- streetAddressProvider defaultFakerSettings
+      --   item <- resolveUnresolved defaultFakerSettings comm resolveAddressText
+      --   item `shouldSatisfy` (\x -> T.length x >= 5)
     describe "Address functions" $ do
       it "basic check" $ do
         fakeCountry <- generate country
         fakeCountry `shouldBe` "Ecuador"
-      it "check community equality" $ do
-        let community1 :: Fake Text
-            community1 =
-              Fake
-                (cachedRandomUnresolvedVec
-                   "address"
-                   "community"
-                   communityProvider
-                   resolveAddressText)
-        c1 <- generate community1
-        c2 <- generate community
-        c1 `shouldBe` c2
-      it "check city prefix equality" $ do
-        let cityPrefix1 :: Fake Text
-            cityPrefix1 =
-              Fake
-                (cachedRandomVec
-                   "address"
-                   "cityPrefix"
-                   addressCityPrefixProvider)
-        c1 <- generate cityPrefix1
-        c2 <- generate cityPrefix
-        c1 `shouldBe` c2
+      -- it "check community equality" $ do
+      --   let community1 :: Fake Text
+      --       community1 =
+      --         Fake
+      --           (cachedRandomUnresolvedVec
+      --              "address"
+      --              "community"
+      --              communityProvider
+      --              resolveAddressText)
+      --   c1 <- generate community1
+      --   c2 <- generate community
+      --   c1 `shouldBe` c2
+      -- it "check city prefix equality" $ do
+      --   let cityPrefix1 :: Fake Text
+      --       cityPrefix1 =
+      --         Fake
+      --           (cachedRandomVec
+      --              "address"
+      --              "cityPrefix"
+      --              addressCityPrefixProvider)
+      --   c1 <- generate cityPrefix1
+      --   c2 <- generate cityPrefix
+      --   c1 `shouldBe` c2
       it "Monad instance of Fake" $ do
         let someCountry :: Fake Text
             someCountry = do
@@ -221,9 +221,9 @@
         (c1, c2) <- generate someBuilding
         c1 `shouldNotBe` c2
     describe "Empty data sources" $ do
-      it "For ee locale, countries is empty" $ do
-        ctries <- countryProvider (setLocale "ee" defaultFakerSettings)
-        ctries `shouldSatisfy` (\x -> V.length x == 0)
+      -- it "For ee locale, countries is empty" $ do
+      --   ctries <- countryProvider (setLocale "ee" defaultFakerSettings)
+      --   ctries `shouldSatisfy` (\x -> V.length x == 0)
       it "For ee locale, throws exception" $ do
         let action =
               generateWithSettings (setLocale "ee" defaultFakerSettings) country
diff --git a/test/AppSpec.hs b/test/AppSpec.hs
deleted file mode 100644
--- a/test/AppSpec.hs
+++ /dev/null
@@ -1,38 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-module AppSpec where
-
-import Config
-import qualified Data.Map as M
-import Data.Text hiding (all, map)
-import qualified Data.Text as T
-import qualified Data.Vector as V
-import Faker hiding (defaultFakerSettings)
-import Faker.App
-import Faker.Internal
-import Faker.Provider.App
-import Test.Hspec
-import TestImport
-
-spec :: Spec
-spec = do
-  describe "App" $ do
-    it "Resolves App name" $ do
-      ctries <- resolveAppField defaultFakerSettings "Name.name"
-      ctries `shouldSatisfy` (\x -> T.length x >= 0)
-    it "generates App name (sanity TH check)" $ do
-      aname <- generate name
-      aname `shouldBe` "Pannier"
-    it "generates App name (TH check)" $ do
-      let name2 :: Fake Text
-          name2 = Fake $ resolver appNameProvider
-      aname <- generate name
-      bname <- generate name2
-      aname `shouldBe` bname
-    it "generates App name (TH check)" $ do
-      let name2 :: Fake Text
-          name2 = Fake $ resolver appNameProvider
-      aname <- generate name
-      bname <- generate name2
-      aname `shouldBe` bname
diff --git a/test/BeerSpec.hs b/test/BeerSpec.hs
deleted file mode 100644
--- a/test/BeerSpec.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-module BeerSpec where
-
-import Config
-import Control.Monad.Catch
-import Control.Monad.IO.Class
-import qualified Data.Map as M
-import Data.Text hiding (all, map)
-import qualified Data.Text as T
-import Data.Vector (Vector)
-import qualified Data.Vector as V
-import Faker hiding (defaultFakerSettings)
-import Faker.Internal
-import Faker.Provider.Beer
-import Test.Hspec
-import TestImport
-
-spec :: Spec
-spec = do
-  describe "Beer" $ do
-    it "Has enough beers" $ do
-      ctries <- beerNameProvider defaultFakerSettings
-      (ctries) `shouldSatisfy` \x -> V.length x > 10
-    it "Equality of generated and manually coded beers" $ do
-      let beerNameProvider2 ::
-               (MonadThrow m, MonadIO m) => FakerSettings -> m (Vector Text)
-          beerNameProvider2 settings = fetchData settings Beer parseBeerName
-      beers1 <- beerNameProvider2 defaultFakerSettings
-      beers2 <- beerNameProvider defaultFakerSettings
-      beers1 `shouldBe` beers2
-    it "Equality of generated and manually coded beer brands" $ do
-      let beerBrandProvider2 ::
-               (MonadThrow m, MonadIO m) => FakerSettings -> m (Vector Text)
-          beerBrandProvider2 settings = fetchData settings Beer parseBeerBrand
-      beers1 <- beerBrandProvider2 defaultFakerSettings
-      beers2 <- beerBrandProvider defaultFakerSettings
-      beers1 `shouldBe` beers2
diff --git a/test/BossaNovaSpec.hs b/test/BossaNovaSpec.hs
--- a/test/BossaNovaSpec.hs
+++ b/test/BossaNovaSpec.hs
@@ -9,10 +9,7 @@
 import qualified Data.Text as T
 import qualified Data.Vector as V
 import Faker
-
 import Faker.BossaNova
-import Faker.Internal
-import Faker.Provider.BossaNova
 import Test.Hspec
 
 spec :: Spec
diff --git a/test/CoffeeSpec.hs b/test/CoffeeSpec.hs
--- a/test/CoffeeSpec.hs
+++ b/test/CoffeeSpec.hs
@@ -18,7 +18,7 @@
 import Faker.Educator
 import Faker.Game.Dota
 import Faker.Internal
-import Faker.Provider.Coffee
+-- import Faker.Provider.Coffee
 import qualified Faker.TvShow.DumbAndDumber as DD
 import Test.Hspec
 import TestImport
@@ -26,12 +26,12 @@
 spec :: Spec
 spec = do
   describe "Coffee" $ do
-    it "Nested field" $ do
-      ctries <- coffeeRegionsBrazilProvider defaultFakerSettings
-      (V.toList ctries) `shouldBe` ["Sul Minas", "Mogiana", "Cerrado"]
-    it "Nested field (via TH)" $ do
-      ctries <- coffeeRegionsColombiaProvider defaultFakerSettings
-      (ctries) `shouldSatisfy` (\x -> V.length x > 3)
+    -- it "Nested field" $ do
+    --   ctries <- coffeeRegionsBrazilProvider defaultFakerSettings
+    --   (V.toList ctries) `shouldBe` ["Sul Minas", "Mogiana", "Cerrado"]
+    -- it "Nested field (via TH)" $ do
+    --   ctries <- coffeeRegionsColombiaProvider defaultFakerSettings
+    --   (ctries) `shouldSatisfy` (\x -> V.length x > 3)
     it "random region" $ do
       ctries <- generate regionsColombia
       ctries `shouldBe` "Santander"
diff --git a/test/FakerSpec.hs b/test/FakerSpec.hs
--- a/test/FakerSpec.hs
+++ b/test/FakerSpec.hs
@@ -31,10 +31,7 @@
 import Faker.Internal
 import Faker.Job (field)
 import Faker.Movie.StarWars
-
--- import Faker.Nation (flagEmoji)
 import Faker.PhoneNumber
-import Faker.Provider.Educator
 import qualified Faker.Restaurant as FR
 import qualified Faker.Science as FS
 import qualified Faker.Sport.Basketball as FB
diff --git a/test/ProviderSpec.hs b/test/ProviderSpec.hs
--- a/test/ProviderSpec.hs
+++ b/test/ProviderSpec.hs
@@ -14,7 +14,6 @@
 import Faker
 import Faker.Educator
 import Faker.Internal
-import Faker.Provider.Educator
 import Test.Hspec
 
 spec :: Spec
diff --git a/test/TextSpec.hs b/test/TextSpec.hs
--- a/test/TextSpec.hs
+++ b/test/TextSpec.hs
@@ -1333,7 +1333,7 @@
             , DR.actors
             , DR.catchPhrases
             , DR.quotes
-            , DR.villians
+            , DR.villains
             , DR.species
             ]
       bools <- verifyFakes functions
