Add subclasses info
diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt
index 84778d0..02d0b3a 100644
--- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt
+++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt
@@ -8,7 +8,6 @@
 import org.jetbrains.dokka.LanguageService.RenderMode.SUMMARY
 import org.jetbrains.dokka.NodeKind.Companion.classLike
 import java.net.URI
-import java.net.URLEncoder
 
 
 class JavaLayoutHtmlFormatOutputBuilder(
@@ -210,6 +209,36 @@
         }
     }
 
+    private fun FlowContent.subclasses(inheritors: List<DocumentationNode>, direct: Boolean) {
+        if (inheritors.isEmpty()) return
+        div {
+            table {
+                thead {
+                    tr {
+                        td {
+                            if (direct)
+                                +"Known Direct Subclasses"
+                            else
+                                +"Known Indirect Subclasses"
+                        }
+                    }
+                }
+                tbody {
+                    inheritors.forEach {
+                        tr {
+                            td {
+                                a(href = uriProvider.linkTo(it, uri)) { +it.classNodeNameWithOuterClass() }
+                            }
+                            td {
+                                metaMarkup(it.summary)
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
     fun appendClassLike(node: DocumentationNode) = templateService.composePage(
             listOf(node),
             htmlConsumer,
@@ -221,6 +250,15 @@
                 pre { renderedSignature(node, FULL) }
                 classHierarchy(node)
 
+                val inheritors = generateSequence(node.inheritors) { inheritors ->
+                    inheritors
+                            .flatMap { it.inheritors }
+                            .takeUnless { it.isEmpty() }
+                }
+                subclasses(inheritors.first(), true)
+                subclasses(inheritors.drop(1).flatten().toList(), false)
+
+
                 metaMarkup(node.content)
 
                 h2 { +"Summary" }
@@ -396,7 +434,8 @@
             is ContentParagraph -> p { appendContent(content.children) }
 
             is ContentNodeLink -> {
-                a(href = content.node?.let { uriProvider.linkTo(it, uri) } ?: "#unresolved") { appendContent(content.children) }
+                a(href = content.node?.let { uriProvider.linkTo(it, uri) }
+                        ?: "#unresolved") { appendContent(content.children) }
             }
             is ContentExternalLink -> {
                 a(href = content.href) { appendContent(content.children) }
diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlPackageListService.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlPackageListService.kt
index 398758f..1a0763f 100644
--- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlPackageListService.kt
+++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlPackageListService.kt
@@ -5,7 +5,7 @@
 import org.jetbrains.dokka.NodeKind
 import org.jetbrains.dokka.PackageListService
 
-class JavaLayoutHtmlPackageListService: PackageListService {
+class JavaLayoutHtmlPackageListService : PackageListService {
 
     private fun StringBuilder.appendParam(name: String, value: String) {
         append(DOKKA_PARAM_PREFIX)