diff --git a/.eslintrc.yml b/.eslintrc.yml
index c6e6843d..87e5b253 100644
--- a/.eslintrc.yml
+++ b/.eslintrc.yml
@@ -53,4 +53,34 @@ rules:
no-useless-call: error
no-useless-concat: error
no-useless-escape: error
- no-useless-return: error
\ No newline at end of file
+ no-useless-return: error
+ no-else-return: error
+ no-lonely-if: error
+ no-undef-init: error
+ no-unneeded-ternary: error
+ no-var: error
+ no-multi-spaces: error
+ no-multiple-empty-lines: ["error", { "max": 2, "maxEOF": 0 }]
+ no-tabs: error
+ no-trailing-spaces: error
+
+ brace-style: error
+ new-parens: error
+ space-infix-ops: error
+ template-curly-spacing: error
+ wrap-regex: error
+ capitalized-comments: error
+ prefer-template: error
+
+ keyword-spacing: ["error", { "before": true } ]
+ strict: ["error", "global"]
+ array-bracket-spacing: ["error", "always"]
+ arrow-parens: ["error", "always"]
+ comma-dangle: ["error", "never"]
+ comma-spacing: ["error", { "before": false, "after": true }]
+ computed-property-spacing: ["error", "never"]
+ func-call-spacing: ["error", "never"]
+ indent: ["error", 2, { "SwitchCase": 1 }]
+ key-spacing: ["error", { "beforeColon": false }]
+ semi: ["error", "always"]
+ operator-assignment: ["error", "always"]
\ No newline at end of file
diff --git a/examples/comments/Comment.md b/examples/comments/Comment.md
new file mode 100644
index 00000000..9448318f
--- /dev/null
+++ b/examples/comments/Comment.md
@@ -0,0 +1,34 @@
+## Comment
+Contains information about a single comment. A [`Comment`](../../lib/parser/contents/classes/Comment.js) can be a top-level comment or a reply to a top-level comment.
+
+## API
+
+* Comment
+ * [.like](#like) ⇒ `function`
+ * [.dislike](#dislike) ⇒ `function`
+ * [.reply](#comment) ⇒ `function`
+ * [.translate](#translate) ⇒ `function`
+
+
+### like()
+Likes the comment.
+
+**Returns:** `Promise.<{ success: boolean, status_code: number, data: object }>`
+
+
+### dislike()
+Dislikes the comment.
+
+**Returns:** `Promise.<{ success: boolean, status_code: number, data: object }>`
+
+
+### reply(text)
+Creates a reply to the comment. **Note:** To create a top-level comment, use the [`Comments#comment(text)`](./README.md#comment) method.
+
+**Returns:** `Promise.<{ success: boolean, status_code: number, data: object }>`
+
+
+### translate(target_language)
+Translates the comment to the given language.
+
+**Returns:** `Promise.<{ success: boolean, status_code: number, data: object, content: string }>`
diff --git a/examples/comments/CommentThread.md b/examples/comments/CommentThread.md
new file mode 100644
index 00000000..96091728
--- /dev/null
+++ b/examples/comments/CommentThread.md
@@ -0,0 +1,35 @@
+# CommentThread
+
+A `CommentThread` represents a top-level comment and its replies.
+
+## API
+
+* CommentThread
+ * [.comment](#comment) ⇒ `Comment`
+ * [.replies](#replies) ⇒ `Comment[]`
+ * [.getReplies](#getreplies) ⇒ `function`
+ * [.getContinuation](#getcontinuation) ⇒ `function`
+
+
+### comment
+The top-level comment. **Note:** More about `Comment` [here](./Comment.md).
+
+**Type:** [`Comment`](../../lib/parser/contents/classes/Comment.js)
+
+
+### replies
+An array of replies to the top-level comment. (not populated until [`getReplies()`](#getreplies) is called).
+
+**Type:** [`Comment[]`](../../lib/parser/contents/classes/Comment.js)
+
+
+### getReplies()
+Retrieves replies to the top-level comment and attaches a [`replies`](#replies) array to the original `CommentThread` object and returns it.
+
+**Returns:** [`Promise.`](../../lib/parser/contents/classes/CommentThread.js)
+
+
+### getContinuation()
+Retrieves next batch of replies and adds them to the [`replies`](#replies) array. **Note:** [`getReplies()`](#getreplies) must be called before using this.
+
+**Returns:** [`Promise.`](../../lib/parser/contents/classes/CommentThread.js)
\ No newline at end of file
diff --git a/examples/comments/README.md b/examples/comments/README.md
new file mode 100644
index 00000000..c8517249
--- /dev/null
+++ b/examples/comments/README.md
@@ -0,0 +1,47 @@
+## Comments
+YouTube.js has full support for comments, including comment actions such as liking, disliking, replying etc.
+
+## Usage
+Get a [`Comments`](../../lib/parser/youtube/Comments.js) instance:
+
+```js
+const comments = await session.getComments(VIDEO_ID);
+```
+
+## API
+* Comments
+ * [.contents](#commentthread) ⇒ `CommentThread[]`
+ * [.comment](#comment) ⇒ `function`
+ * [.getContinuation](#getc) ⇒ `function`
+ * [.page](#page) ⇒ `getter`
+
+
+### contents
+A list of comment threads. **Note:** More about comment threads [**here**](./CommentThread.md).
+
+**Type:** [`CommentThread[]`](../../lib/parser/contents/classes/CommentThread.js)
+
+
+### comment(text)
+Posts a top-level comment.
+
+| Param | Type | Description |
+| --- | --- | --- |
+| text | `string` | Comment content |
+
+**Returns:** `Promise.