diff --git a/NAMESPACE b/NAMESPACE
index 804a243..0037e2d 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -32,6 +32,7 @@
 export(kable_minimal)
 export(kable_paper)
 export(kable_styling)
+export(kbl)
 export(landscape)
 export(linebreak)
 export(magic_mirror)
diff --git a/R/kableExtra-package.R b/R/kableExtra-package.R
index bb6528c..c01f058 100644
--- a/R/kableExtra-package.R
+++ b/R/kableExtra-package.R
@@ -85,3 +85,6 @@
 
 #' @export
 magrittr::`%>%`
+
+#' @export
+knitr::kable
diff --git a/R/kable.R b/R/kbl.R
similarity index 84%
rename from R/kable.R
rename to R/kbl.R
index 108e928..af23485 100644
--- a/R/kable.R
+++ b/R/kbl.R
@@ -46,20 +46,20 @@
 #'
 #' @inheritParams knitr::kable
 #' @export
-kable <- function(x, format, digits = getOption("digits"),
-                  row.names = NA, col.names = NA, align,
-                  caption = NULL, label = NULL, format.args = list(),
-                  escape = TRUE,
-                  table.attr = '',
-                  booktabs = FALSE, longtable = FALSE,
-                  valign = 't', position = '', centering = TRUE,
-                  vline = getOption('knitr.table.vline', if (booktabs) '' else '|'),
-                  toprule = getOption('knitr.table.toprule', if (booktabs) '\\toprule' else '\\hline'),
-                  bottomrule = getOption('knitr.table.bottomrule', if (booktabs) '\\bottomrule' else '\\hline'),
-                  midrule = getOption('knitr.table.midrule', if (booktabs) '\\midrule' else '\\hline'),
-                  linesep = if (booktabs) c('', '', '', '', '\\addlinespace') else '\\hline',
-                  caption.short = '',
-                  table.envir = if (!is.null(caption)) 'table', ...) {
+kbl <- function(x, format, digits = getOption("digits"),
+                row.names = NA, col.names = NA, align,
+                caption = NULL, label = NULL, format.args = list(),
+                escape = TRUE,
+                table.attr = '',
+                booktabs = FALSE, longtable = FALSE,
+                valign = 't', position = '', centering = TRUE,
+                vline = getOption('knitr.table.vline', if (booktabs) '' else '|'),
+                toprule = getOption('knitr.table.toprule', if (booktabs) '\\toprule' else '\\hline'),
+                bottomrule = getOption('knitr.table.bottomrule', if (booktabs) '\\bottomrule' else '\\hline'),
+                midrule = getOption('knitr.table.midrule', if (booktabs) '\\midrule' else '\\hline'),
+                linesep = if (booktabs) c('', '', '', '', '\\addlinespace') else '\\hline',
+                caption.short = '',
+                table.envir = if (!is.null(caption)) 'table', ...) {
   if (!missing(align) && length(align) == 1L && !grepl('[^lcr]', align)) {
     align <- strsplit(align, '')[[1]]
   }
@@ -131,6 +131,4 @@
       escape = escape, ...
     ))
   }
-
-
 }
diff --git a/docs/awesome_table_in_html.Rmd b/docs/awesome_table_in_html.Rmd
index f8a7c67..2a7250a 100644
--- a/docs/awesome_table_in_html.Rmd
+++ b/docs/awesome_table_in_html.Rmd
@@ -47,9 +47,11 @@
 dt <- mtcars[1:5, 1:6]
 ```
 
+> **Key Update:** In the latest version of this package (1.2+), we provide a wrapper funciton to the original 
+
 When you are using `kable()`, if you don't specify `format`, by default it will generate a markdown table and let pandoc handle the conversion from markdown to HTML/PDF. This is the most favorable approach to render most simple tables as it is format independent. If you switch from HTML to pdf, you basically don't need to change anything in your code. However, markdown doesn't support complex table. For example, if you want to have a double-row header table, markdown just cannot provide you the functionality you need. As a result, when you have such a need, you should **define `format` in `kable()`** as either "html" or "latex". *You can also define a global option at the beginning using `options(knitr.table.format = "html")` so you don't repeat the step everytime.* 
 
-**Starting from `kableExtra` 0.9.0**, when you load this package (`library(kableExtra)`), `r text_spec("it will automatically set up the global option 'knitr.table.format' based on your current environment", bold = T, color = "white", background = "#d9230f")`. Unless you are rendering a PDF, `kableExtra` will try to render a HTML table for you. **You no longer need to manually set either the global option or the `format` option in each `kable()` function**. I'm still including the explanation above here in this vignette so you can understand what is going on behind the scene. Note that this is only an global option. You can manually set any format in `kable()` whenever you want. I just hope you can enjoy a peace of mind in most of your time. 
+**Starting from `kableExtra` 0.9.0**, when you load this package (`library(kableExtra)`), it will automatically set up the global option 'knitr.table.format' based on your current environment. Unless you are rendering a PDF, `kableExtra` will try to render a HTML table for you. **You no longer need to manually set either the global option or the `format` option in each `kable()` function**. I'm still including the explanation above here in this vignette so you can understand what is going on behind the scene. Note that this is only an global option. You can manually set any format in `kable()` whenever you want. I just hope you can enjoy a peace of mind in most of your time. 
 
 You can disable this behavior by setting `options(kableExtra.auto_format = FALSE)` before you load `kableExtra`.
 
diff --git a/man/kable.Rd b/man/kbl.Rd
similarity index 98%
rename from man/kable.Rd
rename to man/kbl.Rd
index f7b7d24..0249e69 100644
--- a/man/kable.Rd
+++ b/man/kbl.Rd
@@ -1,10 +1,10 @@
 % Generated by roxygen2: do not edit by hand
-% Please edit documentation in R/kable.R
-\name{kable}
-\alias{kable}
+% Please edit documentation in R/kbl.R
+\name{kbl}
+\alias{kbl}
 \title{Wrapper function of knitr::kable}
 \usage{
-kable(
+kbl(
   x,
   format,
   digits = getOption("digits"),
diff --git a/man/reexports.Rd b/man/reexports.Rd
index 7028941..69a8477 100644
--- a/man/reexports.Rd
+++ b/man/reexports.Rd
@@ -4,6 +4,7 @@
 \name{reexports}
 \alias{reexports}
 \alias{\%>\%}
+\alias{kable}
 \title{Objects exported from other packages}
 \keyword{internal}
 \description{
@@ -11,6 +12,8 @@
 below to see their documentation.
 
 \describe{
+  \item{knitr}{\code{\link[knitr]{kable}}}
+
   \item{magrittr}{\code{\link[magrittr:pipe]{\%>\%}}}
 }}
 
