diff --git a/src/all/noisemanga/build.gradle b/src/all/noisemanga/build.gradle
deleted file mode 100644
index adae3f547..000000000
--- a/src/all/noisemanga/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-ext {
-    extName = 'NOISE Manga'
-    extClass = '.NoiseMangaFactory'
-    extVersionCode = 5
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/all/noisemanga/res/mipmap-hdpi/ic_launcher.png b/src/all/noisemanga/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 8af54945c..000000000
Binary files a/src/all/noisemanga/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/all/noisemanga/res/mipmap-mdpi/ic_launcher.png b/src/all/noisemanga/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 8799d3a64..000000000
Binary files a/src/all/noisemanga/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/all/noisemanga/res/mipmap-xhdpi/ic_launcher.png b/src/all/noisemanga/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 1a4216e30..000000000
Binary files a/src/all/noisemanga/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/all/noisemanga/res/mipmap-xxhdpi/ic_launcher.png b/src/all/noisemanga/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 2f0bc1006..000000000
Binary files a/src/all/noisemanga/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/all/noisemanga/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/noisemanga/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index a3d031dd3..000000000
Binary files a/src/all/noisemanga/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/all/noisemanga/src/eu/kanade/tachiyomi/extension/all/noisemanga/NoiseManga.kt b/src/all/noisemanga/src/eu/kanade/tachiyomi/extension/all/noisemanga/NoiseManga.kt
deleted file mode 100644
index eb659c4e3..000000000
--- a/src/all/noisemanga/src/eu/kanade/tachiyomi/extension/all/noisemanga/NoiseManga.kt
+++ /dev/null
@@ -1,152 +0,0 @@
-package eu.kanade.tachiyomi.extension.all.noisemanga
-
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.network.interceptor.rateLimit
-import eu.kanade.tachiyomi.source.model.FilterList
-import eu.kanade.tachiyomi.source.model.MangasPage
-import eu.kanade.tachiyomi.source.model.Page
-import eu.kanade.tachiyomi.source.model.SChapter
-import eu.kanade.tachiyomi.source.model.SManga
-import eu.kanade.tachiyomi.source.online.ParsedHttpSource
-import okhttp3.Headers
-import okhttp3.OkHttpClient
-import okhttp3.Request
-import okhttp3.Response
-import org.jsoup.nodes.Document
-import org.jsoup.nodes.Element
-import rx.Observable
-import java.util.concurrent.TimeUnit
-
-abstract class NoiseManga(override val lang: String) : ParsedHttpSource() {
-
-    override val name = "NOISE"
-
-    override val baseUrl = "https://noisemanga.com"
-
-    override val supportsLatest = false
-
-    override val client: OkHttpClient = network.client.newBuilder()
-        .rateLimit(1, 2, TimeUnit.SECONDS)
-        .build()
-
-    override fun headersBuilder(): Headers.Builder = Headers.Builder()
-        .add("User-Agent", USER_AGENT)
-        .add("Origin", baseUrl)
-        .add("Referer", baseUrl)
-
-    override fun popularMangaRequest(page: Int): Request = GET(baseUrl, headers)
-
-    override fun popularMangaSelector(): String = "ul#menu-home li a[title=\"Séries\"] + ul li a"
-
-    override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
-        title = element.text()
-        setUrlWithoutDomain(element.attr("href"))
-        thumbnail_url = baseUrl + SLUG_TO_DETAILS_MAP[url]?.thumbnail_url
-    }
-
-    override fun popularMangaNextPageSelector(): String? = null
-
-    /**
-     * Since there are only three series, it's worth to do a client-side search.
-     */
-    override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
-        return super.fetchSearchManga(page, query, filters)
-            .map {
-                val mangas = it.mangas.filter { m -> m.title.contains(query, true) }
-                MangasPage(mangas, it.hasNextPage)
-            }
-    }
-
-    override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = popularMangaRequest(page)
-
-    override fun searchMangaSelector() = popularMangaSelector()
-
-    override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element)
-
-    override fun searchMangaNextPageSelector(): String? = null
-
-    override fun mangaDetailsRequest(manga: SManga): Request = GET(baseUrl + manga.url, headers)
-
-    override fun mangaDetailsParse(document: Document): SManga {
-        val mainContent = document.select("div.main-content-page").first()!!
-        val entryContent = mainContent.select("div.entry-content").first()!!
-        val descriptionSelector = if (lang == "en") "h4 + h4, h4 + div h4" else "h1 + h4"
-        val mangaSlug = document.location().replace(baseUrl, "")
-
-        return SManga.create().apply {
-            title = mainContent.select("header h1.single-title").first()!!.text()
-            author = SLUG_TO_DETAILS_MAP[mangaSlug]?.author
-            artist = SLUG_TO_DETAILS_MAP[mangaSlug]?.artist
-            status = SManga.ONGOING
-            description = entryContent.select(descriptionSelector).last()!!.text()
-            thumbnail_url = baseUrl + SLUG_TO_DETAILS_MAP[mangaSlug]?.thumbnail_url
-        }
-    }
-
-    override fun chapterListRequest(manga: SManga): Request = GET(baseUrl + manga.url, headers)
-
-    override fun chapterListParse(response: Response): List<SChapter> {
-        return super.chapterListParse(response).reversed()
-    }
-
-    override fun chapterListSelector(): String {
-        val columnSelector = if (lang == "pt-BR") 1 else 2
-
-        return "div.entry-content div table tr td:nth-child($columnSelector) a"
-    }
-
-    override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
-        name = element.text()
-        scanlator = "NOISE Manga"
-        setUrlWithoutDomain(element.attr("href"))
-    }
-
-    override fun pageListRequest(chapter: SChapter): Request = GET(baseUrl + chapter.url, headers)
-
-    override fun pageListParse(document: Document): List<Page> {
-        return document.select("div.single-content div.single-entry-summary img.aligncenter")
-            .mapIndexed { i, element ->
-                val imgUrl = element.attr("srcset")
-                    .substringAfterLast(", ")
-                    .substringBeforeLast(" ")
-                Page(i, "", imgUrl)
-            }
-    }
-
-    override fun imageUrlParse(document: Document) = ""
-
-    override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException()
-
-    override fun latestUpdatesSelector() = throw UnsupportedOperationException()
-
-    override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException()
-
-    override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException()
-
-    companion object {
-        private const val USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
-
-        /**
-         * There isn't a good title list available with all the information.
-         * Since the service does only have three series, it's worth to manually
-         * add the missing information, such as artist, author, and thumbnail.
-         */
-        private val SLUG_TO_DETAILS_MAP = mapOf(
-            "/quack/" to SManga.create().apply {
-                artist = "Kaji Pato"
-                author = "Kaji Pato"
-                thumbnail_url = "/wp-content/uploads/2019/11/quack1.jpg"
-            },
-            "/japow/" to SManga.create().apply {
-                artist = "Eduardo Capelo"
-                author = "Jun Sugiyama"
-                thumbnail_url = "/wp-content/uploads/2019/11/JAPOW_000_NOISE_0000.jpg"
-            },
-            "/tools-challenge/" to SManga.create().apply {
-                artist = "Max Andrade"
-                author = "Max Andrade"
-                thumbnail_url = "/wp-content/uploads/2019/11/TC_001_NOISE_0000-1.jpg"
-            },
-        )
-    }
-}
diff --git a/src/all/noisemanga/src/eu/kanade/tachiyomi/extension/all/noisemanga/NoiseMangaFactory.kt b/src/all/noisemanga/src/eu/kanade/tachiyomi/extension/all/noisemanga/NoiseMangaFactory.kt
deleted file mode 100644
index 7bd2f1a2a..000000000
--- a/src/all/noisemanga/src/eu/kanade/tachiyomi/extension/all/noisemanga/NoiseMangaFactory.kt
+++ /dev/null
@@ -1,18 +0,0 @@
-package eu.kanade.tachiyomi.extension.all.noisemanga
-
-import eu.kanade.tachiyomi.source.Source
-import eu.kanade.tachiyomi.source.SourceFactory
-
-class NoiseMangaFactory : SourceFactory {
-    override fun createSources(): List<Source> = listOf(
-        NoiseMangaEnglish(),
-        NoiseMangaPortuguese(),
-    )
-}
-
-class NoiseMangaEnglish : NoiseManga("en")
-
-class NoiseMangaPortuguese : NoiseManga("pt-BR") {
-    // Hardcode the id because the language wasn't specific.
-    override val id: Long = 8279458690164834090
-}
diff --git a/src/en/mangatoread/build.gradle b/src/en/mangatoread/build.gradle
deleted file mode 100644
index eeee8703d..000000000
--- a/src/en/mangatoread/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'MangaToRead'
-    extClass = '.MangaToRead'
-    themePkg = 'madara'
-    baseUrl = 'https://mangatoread.com'
-    overrideVersionCode = 0
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/mangatoread/res/mipmap-hdpi/ic_launcher.png b/src/en/mangatoread/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 1be5a30d8..000000000
Binary files a/src/en/mangatoread/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangatoread/res/mipmap-mdpi/ic_launcher.png b/src/en/mangatoread/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index b423b6d0e..000000000
Binary files a/src/en/mangatoread/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangatoread/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangatoread/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 1636b4ee9..000000000
Binary files a/src/en/mangatoread/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangatoread/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangatoread/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index efcf061e8..000000000
Binary files a/src/en/mangatoread/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangatoread/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/mangatoread/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 17e09fbfa..000000000
Binary files a/src/en/mangatoread/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangatoread/src/eu/kanade/tachiyomi/extension/en/mangatoread/MangaToRead.kt b/src/en/mangatoread/src/eu/kanade/tachiyomi/extension/en/mangatoread/MangaToRead.kt
deleted file mode 100644
index 7fda930f5..000000000
--- a/src/en/mangatoread/src/eu/kanade/tachiyomi/extension/en/mangatoread/MangaToRead.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.mangatoread
-
-import eu.kanade.tachiyomi.multisrc.madara.Madara
-
-class MangaToRead : Madara("MangaToRead", "https://mangatoread.com", "en")
diff --git a/src/en/mangaus/build.gradle b/src/en/mangaus/build.gradle
deleted file mode 100644
index 9a76c333b..000000000
--- a/src/en/mangaus/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'MangaUS'
-    extClass = '.MangaUS'
-    themePkg = 'madara'
-    baseUrl = 'https://mangaus.xyz'
-    overrideVersionCode = 2
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/mangaus/res/mipmap-hdpi/ic_launcher.png b/src/en/mangaus/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index fae07e726..000000000
Binary files a/src/en/mangaus/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaus/res/mipmap-mdpi/ic_launcher.png b/src/en/mangaus/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 73d756e73..000000000
Binary files a/src/en/mangaus/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaus/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangaus/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 4506f5935..000000000
Binary files a/src/en/mangaus/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaus/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangaus/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index cd9a58f62..000000000
Binary files a/src/en/mangaus/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaus/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/mangaus/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 4dfd61bfa..000000000
Binary files a/src/en/mangaus/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaus/src/eu/kanade/tachiyomi/extension/en/mangaus/MangaUS.kt b/src/en/mangaus/src/eu/kanade/tachiyomi/extension/en/mangaus/MangaUS.kt
deleted file mode 100644
index 3c217252a..000000000
--- a/src/en/mangaus/src/eu/kanade/tachiyomi/extension/en/mangaus/MangaUS.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.mangaus
-
-import eu.kanade.tachiyomi.multisrc.madara.Madara
-
-class MangaUS : Madara("MangaUS", "https://mangaus.xyz", "en") {
-    override val pageListParseSelector = "img"
-}
diff --git a/src/en/mangaxp/build.gradle b/src/en/mangaxp/build.gradle
deleted file mode 100644
index 9d780af7e..000000000
--- a/src/en/mangaxp/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'MangaXP'
-    extClass = '.MangaXP'
-    themePkg = 'madara'
-    baseUrl = 'https://mangaxp.com'
-    overrideVersionCode = 1
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/mangaxp/res/mipmap-hdpi/ic_launcher.png b/src/en/mangaxp/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index c0ea4b399..000000000
Binary files a/src/en/mangaxp/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaxp/res/mipmap-mdpi/ic_launcher.png b/src/en/mangaxp/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index a7b6d77ae..000000000
Binary files a/src/en/mangaxp/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaxp/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangaxp/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 6b2d966fd..000000000
Binary files a/src/en/mangaxp/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaxp/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangaxp/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 148c2b8f4..000000000
Binary files a/src/en/mangaxp/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaxp/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/mangaxp/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 21d0d528c..000000000
Binary files a/src/en/mangaxp/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangaxp/src/eu/kanade/tachiyomi/extension/en/mangaxp/MangaXP.kt b/src/en/mangaxp/src/eu/kanade/tachiyomi/extension/en/mangaxp/MangaXP.kt
deleted file mode 100644
index e983a270c..000000000
--- a/src/en/mangaxp/src/eu/kanade/tachiyomi/extension/en/mangaxp/MangaXP.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.mangaxp
-
-import eu.kanade.tachiyomi.multisrc.madara.Madara
-
-class MangaXP : Madara("MangaXP", "https://mangaxp.com", "en")
diff --git a/src/en/neatmanga/build.gradle b/src/en/neatmanga/build.gradle
deleted file mode 100644
index 759d53e4a..000000000
--- a/src/en/neatmanga/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'NeatManga'
-    extClass = '.NeatManga'
-    themePkg = 'madara'
-    baseUrl = 'https://neatmanga.com'
-    overrideVersionCode = 2
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/neatmanga/res/mipmap-hdpi/ic_launcher.png b/src/en/neatmanga/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 07ea71a4f..000000000
Binary files a/src/en/neatmanga/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/neatmanga/res/mipmap-mdpi/ic_launcher.png b/src/en/neatmanga/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index bc042e56d..000000000
Binary files a/src/en/neatmanga/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/neatmanga/res/mipmap-xhdpi/ic_launcher.png b/src/en/neatmanga/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index e62d67847..000000000
Binary files a/src/en/neatmanga/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/neatmanga/res/mipmap-xxhdpi/ic_launcher.png b/src/en/neatmanga/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 9566fc5e3..000000000
Binary files a/src/en/neatmanga/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/neatmanga/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/neatmanga/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index f503a85da..000000000
Binary files a/src/en/neatmanga/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/neatmanga/src/eu/kanade/tachiyomi/extension/en/neatmanga/NeatManga.kt b/src/en/neatmanga/src/eu/kanade/tachiyomi/extension/en/neatmanga/NeatManga.kt
deleted file mode 100644
index 9ef39a44b..000000000
--- a/src/en/neatmanga/src/eu/kanade/tachiyomi/extension/en/neatmanga/NeatManga.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.neatmanga
-
-import eu.kanade.tachiyomi.multisrc.madara.Madara
-import java.text.SimpleDateFormat
-import java.util.Locale
-
-class NeatManga : Madara("NeatManga", "https://neatmanga.com", "en", SimpleDateFormat("dd MMM yyyy", Locale.US)) {
-    override val useNewChapterEndpoint = true
-}
diff --git a/src/en/queenscans/build.gradle b/src/en/queenscans/build.gradle
deleted file mode 100644
index 20e2be1ba..000000000
--- a/src/en/queenscans/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'Fairy Manga'
-    extClass = '.QueenScans'
-    themePkg = 'mangathemesia'
-    baseUrl = 'https://fairymanga.com'
-    overrideVersionCode = 1
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/queenscans/res/mipmap-hdpi/ic_launcher.png b/src/en/queenscans/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 847a3610d..000000000
Binary files a/src/en/queenscans/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/queenscans/res/mipmap-mdpi/ic_launcher.png b/src/en/queenscans/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 3c4da6d4a..000000000
Binary files a/src/en/queenscans/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/queenscans/res/mipmap-xhdpi/ic_launcher.png b/src/en/queenscans/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 9f080d5d8..000000000
Binary files a/src/en/queenscans/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/queenscans/res/mipmap-xxhdpi/ic_launcher.png b/src/en/queenscans/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index aab37056d..000000000
Binary files a/src/en/queenscans/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/queenscans/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/queenscans/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index ec2c69790..000000000
Binary files a/src/en/queenscans/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/queenscans/src/eu/kanade/tachiyomi/extension/en/queenscans/QueenScans.kt b/src/en/queenscans/src/eu/kanade/tachiyomi/extension/en/queenscans/QueenScans.kt
deleted file mode 100644
index f7144572c..000000000
--- a/src/en/queenscans/src/eu/kanade/tachiyomi/extension/en/queenscans/QueenScans.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.queenscans
-
-import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
-import eu.kanade.tachiyomi.network.interceptor.rateLimit
-import eu.kanade.tachiyomi.source.model.SManga
-import okhttp3.Request
-
-class QueenScans : MangaThemesia("Fairy Manga", "https://fairymanga.com", "en") {
-    override val client = super.client.newBuilder()
-        .rateLimit(2)
-        .build()
-
-    override val id = 4680104728999154642
-
-    override fun mangaDetailsRequest(manga: SManga): Request {
-        if (manga.url.startsWith("/comics")) {
-            manga.url.replaceFirst("/comics", mangaUrlDirectory)
-        }
-        return super.mangaDetailsRequest(manga)
-    }
-
-    override fun chapterListRequest(manga: SManga): Request {
-        if (manga.url.startsWith("/comics")) {
-            manga.url.replaceFirst("/comics", mangaUrlDirectory)
-        }
-        return super.chapterListRequest(manga)
-    }
-}
diff --git a/src/en/sawamics/build.gradle b/src/en/sawamics/build.gradle
deleted file mode 100644
index 15cd7669f..000000000
--- a/src/en/sawamics/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'Sawamics'
-    extClass = '.Sawamics'
-    themePkg = 'madara'
-    baseUrl = 'https://sawamics.com'
-    overrideVersionCode = 0
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/sawamics/res/mipmap-hdpi/ic_launcher.png b/src/en/sawamics/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 4ee1870bc..000000000
Binary files a/src/en/sawamics/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/sawamics/res/mipmap-mdpi/ic_launcher.png b/src/en/sawamics/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 75c1a14c3..000000000
Binary files a/src/en/sawamics/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/sawamics/res/mipmap-xhdpi/ic_launcher.png b/src/en/sawamics/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 9b792851b..000000000
Binary files a/src/en/sawamics/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/sawamics/res/mipmap-xxhdpi/ic_launcher.png b/src/en/sawamics/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index a3e688cc0..000000000
Binary files a/src/en/sawamics/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/sawamics/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/sawamics/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index c1ca1f334..000000000
Binary files a/src/en/sawamics/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/sawamics/src/eu/kanade/tachiyomi/extension/en/sawamics/Sawamics.kt b/src/en/sawamics/src/eu/kanade/tachiyomi/extension/en/sawamics/Sawamics.kt
deleted file mode 100644
index 8985efcf3..000000000
--- a/src/en/sawamics/src/eu/kanade/tachiyomi/extension/en/sawamics/Sawamics.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.sawamics
-
-import eu.kanade.tachiyomi.multisrc.madara.Madara
-
-class Sawamics : Madara("Sawamics", "https://sawamics.com", "en")
diff --git a/src/en/zahard/build.gradle b/src/en/zahard/build.gradle
deleted file mode 100644
index 3bd5fbffa..000000000
--- a/src/en/zahard/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'Zahard'
-    extClass = '.Zahard'
-    themePkg = 'mangathemesia'
-    baseUrl = 'https://zahard.xyz'
-    overrideVersionCode = 0
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/zahard/res/mipmap-hdpi/ic_launcher.png b/src/en/zahard/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 9610d4630..000000000
Binary files a/src/en/zahard/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/zahard/res/mipmap-mdpi/ic_launcher.png b/src/en/zahard/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 36dfe5142..000000000
Binary files a/src/en/zahard/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/zahard/res/mipmap-xhdpi/ic_launcher.png b/src/en/zahard/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 0ec89133c..000000000
Binary files a/src/en/zahard/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/zahard/res/mipmap-xxhdpi/ic_launcher.png b/src/en/zahard/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 32ad7b8ad..000000000
Binary files a/src/en/zahard/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/zahard/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/zahard/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 39c8d5346..000000000
Binary files a/src/en/zahard/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/zahard/src/eu/kanade/tachiyomi/extension/en/zahard/Zahard.kt b/src/en/zahard/src/eu/kanade/tachiyomi/extension/en/zahard/Zahard.kt
deleted file mode 100644
index 641e9093c..000000000
--- a/src/en/zahard/src/eu/kanade/tachiyomi/extension/en/zahard/Zahard.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.zahard
-
-import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.source.model.FilterList
-import okhttp3.HttpUrl.Companion.toHttpUrl
-import okhttp3.Request
-
-class Zahard : MangaThemesia(
-    "Zahard",
-    "https://zahard.xyz",
-    "en",
-    mangaUrlDirectory = "/library",
-) {
-    override val versionId = 2
-
-    override val supportsLatest = false
-
-    override val pageSelector = "div#chapter_imgs img"
-
-    override fun searchMangaNextPageSelector() = "a[rel=next]"
-
-    override fun chapterListSelector() = "#chapterlist > ul > a"
-
-    override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
-        val url = baseUrl.toHttpUrl().newBuilder()
-            .addPathSegment(mangaUrlDirectory.substring(1))
-            .addQueryParameter("search", query)
-            .addQueryParameter("page", page.toString())
-            .build()
-
-        return GET(url, headers)
-    }
-
-    override fun getFilterList() = FilterList()
-}
diff --git a/src/es/legendscanlations/build.gradle b/src/es/legendscanlations/build.gradle
deleted file mode 100644
index 15e67ee12..000000000
--- a/src/es/legendscanlations/build.gradle
+++ /dev/null
@@ -1,10 +0,0 @@
-ext {
-    extName = 'LegendScanlations'
-    extClass = '.LegendScanlations'
-    themePkg = 'madara'
-    baseUrl = 'https://legendscanlations.com'
-    overrideVersionCode = 0
-    isNsfw = false
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/es/legendscanlations/res/mipmap-hdpi/ic_launcher.png b/src/es/legendscanlations/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 00cebd958..000000000
Binary files a/src/es/legendscanlations/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/es/legendscanlations/res/mipmap-mdpi/ic_launcher.png b/src/es/legendscanlations/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 7c59828c7..000000000
Binary files a/src/es/legendscanlations/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/es/legendscanlations/res/mipmap-xhdpi/ic_launcher.png b/src/es/legendscanlations/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 677f2d7cb..000000000
Binary files a/src/es/legendscanlations/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/es/legendscanlations/res/mipmap-xxhdpi/ic_launcher.png b/src/es/legendscanlations/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 2f4f91e37..000000000
Binary files a/src/es/legendscanlations/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/es/legendscanlations/res/mipmap-xxxhdpi/ic_launcher.png b/src/es/legendscanlations/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 75d69a7dd..000000000
Binary files a/src/es/legendscanlations/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/es/legendscanlations/src/eu/kanade/tachiyomi/extension/es/legendscanlations/LegendScanlations.kt b/src/es/legendscanlations/src/eu/kanade/tachiyomi/extension/es/legendscanlations/LegendScanlations.kt
deleted file mode 100644
index 6378b385b..000000000
--- a/src/es/legendscanlations/src/eu/kanade/tachiyomi/extension/es/legendscanlations/LegendScanlations.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package eu.kanade.tachiyomi.extension.es.legendscanlations
-
-import eu.kanade.tachiyomi.multisrc.madara.Madara
-import java.text.SimpleDateFormat
-import java.util.Locale
-
-class LegendScanlations : Madara(
-    "LegendScanlations",
-    "https://legendscanlations.com",
-    "es",
-    SimpleDateFormat("dd/MM/yyyy", Locale("es")),
-) {
-    override val useNewChapterEndpoint = true
-}
diff --git a/src/id/komikplay/build.gradle b/src/id/komikplay/build.gradle
deleted file mode 100644
index 65702fe3d..000000000
--- a/src/id/komikplay/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'KomikPlay'
-    extClass = '.KomikPlay'
-    themePkg = 'zmanga'
-    baseUrl = 'https://komikplay.com'
-    overrideVersionCode = 1
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/id/komikplay/res/mipmap-hdpi/ic_launcher.png b/src/id/komikplay/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index a2229c367..000000000
Binary files a/src/id/komikplay/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/id/komikplay/res/mipmap-mdpi/ic_launcher.png b/src/id/komikplay/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index dda8a57d5..000000000
Binary files a/src/id/komikplay/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/id/komikplay/res/mipmap-xhdpi/ic_launcher.png b/src/id/komikplay/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index fb34e8d1f..000000000
Binary files a/src/id/komikplay/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/id/komikplay/res/mipmap-xxhdpi/ic_launcher.png b/src/id/komikplay/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index cb9fbc1e1..000000000
Binary files a/src/id/komikplay/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/id/komikplay/res/mipmap-xxxhdpi/ic_launcher.png b/src/id/komikplay/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index d4baf3da2..000000000
Binary files a/src/id/komikplay/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/id/komikplay/src/eu/kanade/tachiyomi/extension/id/komikplay/KomikPlay.kt b/src/id/komikplay/src/eu/kanade/tachiyomi/extension/id/komikplay/KomikPlay.kt
deleted file mode 100644
index 4f82edfbc..000000000
--- a/src/id/komikplay/src/eu/kanade/tachiyomi/extension/id/komikplay/KomikPlay.kt
+++ /dev/null
@@ -1,58 +0,0 @@
-package eu.kanade.tachiyomi.extension.id.komikplay
-
-import eu.kanade.tachiyomi.multisrc.zmanga.ZManga
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.source.model.Filter
-import eu.kanade.tachiyomi.source.model.FilterList
-import eu.kanade.tachiyomi.source.model.SManga
-import okhttp3.HttpUrl.Companion.toHttpUrl
-import okhttp3.Request
-import org.jsoup.nodes.Element
-import java.text.SimpleDateFormat
-import java.util.Locale
-
-class KomikPlay : ZManga("KomikPlay", "https://komikplay.com", "id", SimpleDateFormat("d MMM yyyy", Locale.US)) {
-
-    override fun popularMangaRequest(page: Int): Request {
-        return GET("$baseUrl/${pagePathSegment(page)}/?s")
-    }
-
-    override fun latestUpdatesRequest(page: Int): Request {
-        return GET("$baseUrl/${pagePathSegment(page)}")
-    }
-
-    override fun latestUpdatesSelector() = "h2:contains(New) + .flexbox3 .flexbox3-item"
-
-    override fun latestUpdatesFromElement(element: Element): SManga {
-        return SManga.create().apply {
-            setUrlWithoutDomain(element.select("div.flexbox3-content a").attr("href"))
-            title = element.select("div.flexbox3-content a").attr("title")
-            thumbnail_url = element.select("img").attr("abs:src")
-        }
-    }
-
-    override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
-        var url = "$baseUrl/${pagePathSegment(page)}".toHttpUrl().newBuilder()
-        url.addQueryParameter("s", query)
-        (if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
-            when (filter) {
-                // if site has project page, default value "hasProjectPage" = false
-                is ProjectFilter -> {
-                    if (filter.toUriPart() == "project-filter-on") {
-                        url = "$baseUrl$projectPageString/page/$page".toHttpUrl().newBuilder()
-                    }
-                }
-                else -> {}
-            }
-        }
-        return GET(url.build(), headers)
-    }
-
-    override fun getFilterList() = FilterList(
-        Filter.Header("NOTE: cant be used with other filter!"),
-        Filter.Header("$name Project List page"),
-        ProjectFilter(),
-    )
-
-    override val hasProjectPage = true
-}
diff --git a/src/pt/rainbowfairyscan/build.gradle b/src/pt/rainbowfairyscan/build.gradle
deleted file mode 100644
index 2dab5b1f6..000000000
--- a/src/pt/rainbowfairyscan/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-ext {
-    extName = 'Rainbow Fairy Scan'
-    extClass = '.RainbowFairyScan'
-    themePkg = 'madara'
-    baseUrl = 'https://rainbowfairyscan.com'
-    overrideVersionCode = 0
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/pt/rainbowfairyscan/src/eu/kanade/tachiyomi/extension/pt/rainbowfairyscan/RainbowFairyScan.kt b/src/pt/rainbowfairyscan/src/eu/kanade/tachiyomi/extension/pt/rainbowfairyscan/RainbowFairyScan.kt
deleted file mode 100644
index ae5798c56..000000000
--- a/src/pt/rainbowfairyscan/src/eu/kanade/tachiyomi/extension/pt/rainbowfairyscan/RainbowFairyScan.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package eu.kanade.tachiyomi.extension.pt.rainbowfairyscan
-
-import eu.kanade.tachiyomi.multisrc.madara.Madara
-import eu.kanade.tachiyomi.network.interceptor.rateLimit
-import okhttp3.OkHttpClient
-import java.text.SimpleDateFormat
-import java.util.Locale
-import java.util.concurrent.TimeUnit
-
-class RainbowFairyScan : Madara(
-    "Rainbow Fairy Scan",
-    "https://rainbowfairyscan.com",
-    "pt-BR",
-    SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
-) {
-
-    override val client: OkHttpClient = super.client.newBuilder()
-        .rateLimit(1, 2, TimeUnit.SECONDS)
-        .build()
-
-    // Page has custom link to scan website.
-    override val popularMangaUrlSelector = "div.post-title a:not([target])"
-}