diff --git a/src/en/mangastream/build.gradle b/src/en/mangastream/build.gradle
deleted file mode 100644
index 844629e6b..000000000
--- a/src/en/mangastream/build.gradle
+++ /dev/null
@@ -1,12 +0,0 @@
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-
-ext {
-    appName = 'Tachiyomi: Mangastream'
-    pkgNameSuffix = 'en.mangastream'
-    extClass = '.Mangastream'
-    extVersionCode = 4
-    libVersion = '1.2'
-}
-
-apply from: "$rootDir/common.gradle"
diff --git a/src/en/mangastream/res/mipmap-hdpi/ic_launcher.png b/src/en/mangastream/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index 5dbb3fbb2..000000000
Binary files a/src/en/mangastream/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangastream/res/mipmap-mdpi/ic_launcher.png b/src/en/mangastream/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 7dffe8a92..000000000
Binary files a/src/en/mangastream/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangastream/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangastream/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index b4d653759..000000000
Binary files a/src/en/mangastream/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangastream/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangastream/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 6e9c2cc5c..000000000
Binary files a/src/en/mangastream/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangastream/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/mangastream/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index b265e8412..000000000
Binary files a/src/en/mangastream/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/src/en/mangastream/res/web_hi_res_512.png b/src/en/mangastream/res/web_hi_res_512.png
deleted file mode 100644
index 9a1b44eba..000000000
Binary files a/src/en/mangastream/res/web_hi_res_512.png and /dev/null differ
diff --git a/src/en/mangastream/src/eu/kanade/tachiyomi/extension/en/mangastream/Mangastream.kt b/src/en/mangastream/src/eu/kanade/tachiyomi/extension/en/mangastream/Mangastream.kt
deleted file mode 100644
index 24247b505..000000000
--- a/src/en/mangastream/src/eu/kanade/tachiyomi/extension/en/mangastream/Mangastream.kt
+++ /dev/null
@@ -1,168 +0,0 @@
-package eu.kanade.tachiyomi.extension.en.mangastream
-
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.network.asObservableSuccess
-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 eu.kanade.tachiyomi.util.asJsoup
-import okhttp3.Response
-import org.jsoup.nodes.Document
-import org.jsoup.nodes.Element
-import rx.Observable
-import java.text.ParseException
-import java.text.SimpleDateFormat
-import java.util.Calendar
-import java.util.Date
-import java.util.Locale
-import java.util.regex.Pattern
-
-class Mangastream : ParsedHttpSource() {
-
-    override val name = "Mangastream"
-
-    override val baseUrl = "https://readms.net/"
-
-    override val lang = "en"
-
-    override val supportsLatest = true
-
-    private val datePattern by lazy {
-        Pattern.compile("(\\d+) days? ago")
-    }
-
-    override fun popularMangaSelector() = "table.table-striped > tbody > tr > td:nth-of-type(1)"
-
-    override fun latestUpdatesSelector() = "div.col-sm-4 > div.side-nav > ul.new-list > li"
-
-    override fun popularMangaRequest(page: Int) = GET("$baseUrl/manga", headers)
-
-    override fun latestUpdatesRequest(page: Int) = GET(baseUrl, headers)
-
-    override fun popularMangaFromElement(element: Element): SManga {
-        val manga = SManga.create()
-        element.select("strong > a").first().let {
-            manga.setUrlWithoutDomain(it.attr("href"))
-            manga.title = if (it.hasAttr("title")) it.attr("title") else if (it.hasAttr("rel")) it.attr("rel") else it.text()
-        }
-        return manga
-    }
-
-    override fun latestUpdatesFromElement(element: Element): SManga {
-        val manga = SManga.create()
-        element.select("a").first().let {
-            val name = it.attr("href").substringAfter("/r/").substringBefore("/")
-            manga.setUrlWithoutDomain("http://mangastream.com/manga/$name")
-            manga.title = it.html().substringBefore(" <strong>").substringAfterLast(">")
-        }
-        return manga
-    }
-
-    override fun popularMangaNextPageSelector() = null
-
-    override fun latestUpdatesNextPageSelector() = null
-
-    override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = GET("$baseUrl/manga", headers)
-
-    override fun searchMangaSelector() = popularMangaSelector()
-
-    private fun searchMangaSelector(query: String) = "table.table-striped > tbody > tr > td:nth-of-type(1):contains($query)"
-
-    override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element)
-
-    override fun searchMangaNextPageSelector() = null
-
-    private fun searchMangaParse(response: Response, query: String): MangasPage {
-        val document = response.asJsoup()
-
-        val mangas = document.select(searchMangaSelector(query)).map { element ->
-            searchMangaFromElement(element)
-        }
-
-        val hasNextPage = searchMangaNextPageSelector()?.let { selector ->
-            document.select(selector).first()
-        } != null
-
-        return MangasPage(mangas, hasNextPage)
-    }
-
-    override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
-        return client.newCall(searchMangaRequest(page, query, filters))
-            .asObservableSuccess()
-            .map { response ->
-                searchMangaParse(response, query)
-            }
-    }
-
-    override fun mangaDetailsParse(document: Document): SManga {
-        val title = document.select("h1").first().text()
-        val manga = SManga.create()
-        manga.author = "Unknown"
-        manga.artist = "Unknown"
-        manga.genre = "Unknown"
-        manga.description = "Unknown"
-        manga.status = SManga.UNKNOWN
-        manga.thumbnail_url = if (title == "One Shot") "" else setThumbnail(title)
-        return manga
-    }
-
-    private fun setThumbnail(title: String): String {
-        return client.newCall(GET("https://myanimelist.net/manga.php?q=" + title.replace(" ", "%20"), headers)).execute().asJsoup().select("a.hoverinfo_trigger").first().attr("href").let {
-            client.newCall(GET(it, headers)).execute().asJsoup().select("img.ac").first().attr("src")
-        }
-    }
-
-    override fun chapterListSelector() = "table.table-striped > tbody > tr:has(td)"
-
-    override fun chapterFromElement(element: Element): SChapter {
-        val urlEl = element.select("td:nth-of-type(1) > a").first()
-        val dateEl = element.select("td:nth-of-type(2)")
-
-        val chapter = SChapter.create()
-        chapter.url = urlEl.attr("href")
-        chapter.name = urlEl.text()
-        chapter.date_upload = dateEl.text()?.let { dateParse(it) } ?: 0
-
-        return chapter
-    }
-
-    private fun dateParse(dateAsString: String): Long {
-        val date: Date = try {
-            SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH).parse(dateAsString.replace(Regex("(st|nd|rd|th)"), ""))
-        } catch (e: ParseException) {
-            val m = datePattern.matcher(dateAsString)
-
-            if (dateAsString != "Today" && m.matches()) {
-                val amount = m.group(1).toInt()
-
-                Calendar.getInstance().apply {
-                    add(Calendar.DATE, -amount)
-                }.time
-            } else if (dateAsString == "Today") {
-                Calendar.getInstance().time
-            } else return 0
-        }
-
-        return date.time
-    }
-
-    override fun pageListParse(document: Document): List<Page> {
-        val num = document.select("div.btn-reader-page > ul.dropdown-menu > li").last().text().substringAfter("Last Page (").substringBefore(")").toInt()
-        val url = document.baseUri().substringBeforeLast("1")
-        val pages = mutableListOf<Page>()
-
-        for (i in 1..num)
-            pages.add(Page(i - 1, url + i))
-
-        pages.getOrNull(0)?.imageUrl = imageUrlParse(document)
-        return pages
-    }
-
-    override fun imageUrlParse(document: Document): String {
-        return "http:" + document.getElementById("manga-page").attr("src")
-    }
-
-}