diff --git a/Makefile.am b/Makefile.am
index 0bb0a9ec..1135a898 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -42,55 +42,45 @@ libaedis_a_SOURCES += $(top_srcdir)/src/aedis.cpp
libaedis_a_CPPFLAGS = $(MY_CPPFLAGS)
noinst_PROGRAMS =
-noinst_PROGRAMS += intro1
-intro1_SOURCES = $(top_srcdir)/examples/intro1.cpp
-intro1_CPPFLAGS = $(MY_CPPFLAGS)
-intro1_LDADD = $(MY_LDADD)
+noinst_PROGRAMS += intro
+intro_SOURCES = $(top_srcdir)/examples/intro.cpp
+intro_CPPFLAGS = $(MY_CPPFLAGS)
+intro_LDADD = $(MY_LDADD)
-noinst_PROGRAMS += intro2
-intro2_SOURCES = $(top_srcdir)/examples/intro2.cpp
-intro2_CPPFLAGS = $(MY_CPPFLAGS)
-intro2_LDADD = $(MY_LDADD)
-
-noinst_PROGRAMS += intro3
-intro3_SOURCES = $(top_srcdir)/examples/intro3.cpp
-intro3_CPPFLAGS = $(MY_CPPFLAGS)
-intro3_LDADD = $(MY_LDADD)
-
-noinst_PROGRAMS += intro4
-intro4_SOURCES = $(top_srcdir)/examples/intro4.cpp
-intro4_CPPFLAGS = $(MY_CPPFLAGS)
-intro4_LDADD = $(MY_LDADD)
+noinst_PROGRAMS += subscriber
+subscriber_SOURCES = $(top_srcdir)/examples/subscriber.cpp
+subscriber_CPPFLAGS = $(MY_CPPFLAGS)
+subscriber_LDADD = $(MY_LDADD)
noinst_PROGRAMS += containers
containers_SOURCES = $(top_srcdir)/examples/containers.cpp
containers_CPPFLAGS = $(MY_CPPFLAGS)
containers_LDADD = $(MY_LDADD)
-noinst_PROGRAMS += custom_serialization
-custom_serialization_SOURCES = $(top_srcdir)/examples/custom_serialization.cpp
-custom_serialization_CPPFLAGS = $(MY_CPPFLAGS)
-custom_serialization_LDADD = $(MY_LDADD)
+noinst_PROGRAMS += serialization
+serialization_SOURCES = $(top_srcdir)/examples/serialization.cpp
+serialization_CPPFLAGS = $(MY_CPPFLAGS)
+serialization_LDADD = $(MY_LDADD)
noinst_PROGRAMS += non_flat_response
non_flat_response_SOURCES = $(top_srcdir)/examples/non_flat_response.cpp
non_flat_response_CPPFLAGS = $(MY_CPPFLAGS)
non_flat_response_LDADD = $(MY_LDADD)
-noinst_PROGRAMS += custom_response2
-custom_response2_SOURCES = $(top_srcdir)/examples/custom_response2.cpp
-custom_response2_CPPFLAGS = $(MY_CPPFLAGS)
-custom_response2_LDADD = $(MY_LDADD)
+noinst_PROGRAMS += lists
+lists_SOURCES = $(top_srcdir)/examples/lists.cpp
+lists_CPPFLAGS = $(MY_CPPFLAGS)
+lists_LDADD = $(MY_LDADD)
noinst_PROGRAMS += echo_server
echo_server_SOURCES = $(top_srcdir)/examples/echo_server.cpp
echo_server_CPPFLAGS = $(MY_CPPFLAGS)
echo_server_LDADD = $(MY_LDADD)
-noinst_PROGRAMS += helper_queue1
-helper_queue1_SOURCES = $(top_srcdir)/examples/helper_queue1.cpp
-helper_queue1_CPPFLAGS = $(MY_CPPFLAGS)
-helper_queue1_LDADD = $(MY_LDADD)
+noinst_PROGRAMS += response_queue
+response_queue_SOURCES = $(top_srcdir)/examples/response_queue.cpp
+response_queue_CPPFLAGS = $(MY_CPPFLAGS)
+response_queue_LDADD = $(MY_LDADD)
noinst_PROGRAMS += test
test_SOURCES = $(top_srcdir)/tests/general.cpp
diff --git a/doc/Doxyfile b/doc/Doxyfile
index a4f9d98e..24dac256 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -44,7 +44,7 @@ PROJECT_NUMBER = 1.0.0
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.
-PROJECT_BRIEF = An async redis client
+PROJECT_BRIEF = "Reference guide"
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -263,12 +263,6 @@ TAB_SIZE = 4
ALIASES =
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
@@ -467,7 +461,7 @@ LOOKUP_CACHE_SIZE = 0
# normally produced when WARNINGS is set to YES.
# The default value is: NO.
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
# be included in the documentation.
@@ -616,7 +610,7 @@ SORT_MEMBER_DOCS = YES
# this will also influence the order of the classes in the class list.
# The default value is: NO.
-SORT_BRIEF_DOCS = NO
+SORT_BRIEF_DOCS = YES
# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
# (brief and detailed) documentation of class members so that constructors and
@@ -628,7 +622,7 @@ SORT_BRIEF_DOCS = NO
# detailed member documentation.
# The default value is: NO.
-SORT_MEMBERS_CTORS_1ST = NO
+SORT_MEMBERS_CTORS_1ST = YES
# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
# of group names into alphabetical order. If set to NO the group names will
@@ -741,7 +735,7 @@ FILE_VERSION_FILTER =
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
# tag is left empty.
-LAYOUT_FILE =
+LAYOUT_FILE = doc/DoxygenLayout.xml
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
@@ -867,7 +861,6 @@ FILE_PATTERNS = *.c \
*.ipp \
*.i++ \
*.inl \
- *.idl \
*.ddl \
*.odl \
*.h \
@@ -944,7 +937,7 @@ EXCLUDE_PATTERNS =
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*
-EXCLUDE_SYMBOLS =
+EXCLUDE_SYMBOLS = std
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
# that contain example code fragments that are included (see the \include
@@ -1039,7 +1032,7 @@ USE_MDFILE_AS_MAINPAGE =
# also VERBATIM_HEADERS is set to NO.
# The default value is: NO.
-SOURCE_BROWSER = NO
+SOURCE_BROWSER = YES
# Setting the INLINE_SOURCES tag to YES will include the body of functions,
# classes and enums directly into the documentation.
@@ -1154,13 +1147,6 @@ CLANG_DATABASE_PATH =
ALPHABETICAL_INDEX = YES
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1211,7 +1197,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_HEADER =
+HTML_HEADER = doc/htmlheader.html
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
@@ -1221,7 +1207,7 @@ HTML_HEADER =
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_FOOTER =
+HTML_FOOTER = doc/htmlfooter.html
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
@@ -1246,7 +1232,7 @@ HTML_STYLESHEET =
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_EXTRA_STYLESHEET =
+HTML_EXTRA_STYLESHEET = doc/aedis.css
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
@@ -1295,7 +1281,7 @@ HTML_COLORSTYLE_GAMMA = 80
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_TIMESTAMP = NO
+HTML_TIMESTAMP = YES
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that
@@ -1526,7 +1512,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-DISABLE_INDEX = NO
+DISABLE_INDEX = YES
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information. If the tag
@@ -1543,7 +1529,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-GENERATE_TREEVIEW = NO
+GENERATE_TREEVIEW = YES
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
@@ -1553,7 +1539,7 @@ GENERATE_TREEVIEW = NO
# Minimum value: 0, maximum value: 20, default value: 4.
# This tag requires that the tag GENERATE_HTML is set to YES.
-ENUM_VALUES_PER_LINE = 0
+ENUM_VALUES_PER_LINE = 4
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
# to set the initial width (in pixels) of the frame in which the tree is shown.
@@ -1604,7 +1590,7 @@ FORMULA_MACROFILE =
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-USE_MATHJAX = NO
+USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
diff --git a/doc/DoxygenLayout.xml b/doc/DoxygenLayout.xml
new file mode 100644
index 00000000..de17dbcd
--- /dev/null
+++ b/doc/DoxygenLayout.xml
@@ -0,0 +1,226 @@
+
+
+
+