diff --git a/json_parser.py b/benchmark/json_parser.py
similarity index 100%
rename from json_parser.py
rename to benchmark/json_parser.py
diff --git a/Doxyfile b/doc/Doxyfile
similarity index 99%
rename from Doxyfile
rename to doc/Doxyfile
index 2898e92a..e8b7b6be 100644
--- a/Doxyfile
+++ b/doc/Doxyfile
@@ -753,7 +753,7 @@ WARN_LOGFILE           =
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = src
+INPUT                  = ../src
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/Reference.md b/doc/Reference.md
similarity index 100%
rename from Reference.md
rename to doc/Reference.md
diff --git a/src/JSON.cc b/src/JSON.cc
index 43ae8026..0ccf5c84 100644
--- a/src/JSON.cc
+++ b/src/JSON.cc
@@ -1,6 +1,16 @@
+/*!
+@file
+@copyright The code is licensed under the MIT License
+           <http://opensource.org/licenses/MIT>,
+           Copyright (c) 2013-2014 Niels Lohmann.
+
+@author Niels Lohmann <http://nlohmann.me>
+
+@see https://github.com/nlohmann/json
+*/
+
 #include "JSON.h"
 
-#include <cassert>    // assert
 #include <cctype>     // std::isdigit, std::isspace
 #include <cstddef>    // size_t
 #include <cstdlib>    // std::atof
diff --git a/src/JSON.h b/src/JSON.h
index dc90875f..2d7969a8 100644
--- a/src/JSON.h
+++ b/src/JSON.h
@@ -1,3 +1,14 @@
+/*!
+@file
+@copyright The code is licensed under the MIT License
+           <http://opensource.org/licenses/MIT>,
+           Copyright (c) 2013-2014 Niels Lohmann.
+
+@author Niels Lohmann <http://nlohmann.me>
+
+@see https://github.com/nlohmann/json
+*/
+
 #pragma once
 
 #include <initializer_list>  // std::initializer_list
@@ -8,6 +19,8 @@
 #include <vector>            // std::vector
 
 /*!
+@brief JSON for Modern C++
+
 The size of a JSON object is 16 bytes: 8 bytes for the value union whose
 largest item is a pointer type and another 8 byte for an element of the
 type union. The latter only needs 1 byte - the remaining 7 bytes are wasted