update vignette
diff --git a/vignettes/awesome_table_in_html.Rmd b/vignettes/awesome_table_in_html.Rmd
index 4822594..0a68525 100644
--- a/vignettes/awesome_table_in_html.Rmd
+++ b/vignettes/awesome_table_in_html.Rmd
@@ -115,7 +115,7 @@
   add_header_above(c(" " = 1, "Group 1" = 2, "Group 2" = 2, "Group 3" = 2))
 ```
 
-In fact, if you want to add another row of header on top, please feel free to do so. 
+In fact, if you want to add another row of header on top, please feel free to do so.
 ```{r}
 kable(dt) %>%
   kable_styling(c("striped", "bordered")) %>%
@@ -196,6 +196,8 @@
 
 # Column Style Specification
 When you have a table with lots of explanatory texts, you may want to specified the column width for different column, since the auto adjust in HTML may not work in its best way while basic LaTeX table is really bad at handling text wrapping. Also, sometimes, you may want to highlight a column (e.g. a "Total" column) by making it bold. In these scenario, you can use `column_spec()`. You can find an example below. 
+
+Warning: If you have a super long table, you should be cautious when you use `column_spec` as the xml node modification takes time.
 ```{r}
 text_tbl <- data.frame(
   Items = c("Item 1", "Item 2", "Item 3"),
@@ -211,3 +213,31 @@
   column_spec(1, bold = T) %>%
   column_spec(2, width = "30em")
 ```
+
+***
+
+The following features are introduced in `kableExtra` 0.3.0
+
+# Row Style Specification
+Similar with `column_spec`, you can define specifications for rows. Currently, you can either bold or italiciz an entire row. Note that, similar with other row-related functions in `kableExtra`, for the position of the target row, you don't need to count in header rows or the group labelling rows.
+
+```{r}
+kable(dt) %>%
+  kable_styling("striped", full_width = F) %>%
+  column_spec(7, bold = T) %>%
+  row_spec(5, bold = T)
+```
+
+# Collapse Rows in Selected Columns
+Function `group_rows` is great for showing simple structural information on rows but sometimes people may need to show structural information with multiple layers. When it happens, you may consider to use `collapse_rows` instead, which will put repeating cells in columns into multi-row cells. 
+
+```{r}
+collapse_rows_dt <- data.frame(C1 = c(rep("a", 10), rep("b", 5)),
+                 C2 = c(rep("c", 7), rep("d", 3), rep("c", 2), rep("d", 3)),
+                 C3 = 1:15,
+                 C4 = sample(c(0,1), 15, replace = TRUE))
+kable(collapse_rows_dt, "html", align = "c") %>%
+  kable_styling(full_width = F) %>%
+  column_spec(1, bold=T) %>%
+  collapse_rows(columns = 1:2)
+```