diff --git a/.travis.yml b/.travis.yml
index f08da44..fc6c694 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,70 +1,70 @@
-#sudo: false
-#language: c++
-#
-#notifications:
-#  email:
-#    on_success: change
-#    on_failure: always
-#  # gitter
-#  webhooks:
-#    urls: https://webhooks.gitter.im/e/10941dd1c67e5e967706
-#    on_success: change
-#    on_failure: always
-#git:
-#  depth: 5
-#
-## both apt and ccache make the builds slower...
-##cache:
-##  - apt
-##  - ccache
-#
-#env:
-#  global:
-##    - USE_CCACHE=1
-##    - CCACHE_SLOPPINESS=pch_defines,time_macros
-##    - CCACHE_COMPRESS=1
-##    - CCACHE_MAXSIZE=200M
-##    - CCACHE_CPP2=1
-#    - CMAKE_OPTIONS_GLOBAL="-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
-#  # Workaround for https://github.com/travis-ci/travis-ci/issues/4681
-#  # "Defining the build matrix only with matrix.include leads to an additional, unwanted job"
-#  matrix:
-#    - TRAVIS_EMPTY_JOB_WORKAROUND=true
-#
-#addons:
-#  coverity_scan:
-#    # COVERITY_SCAN_TOKEN added as env var in travis project
-#    project:
-#      name: onqtam/doctest
-#    notification_email: vik.kirilov@gmail.com
-#    build_command_prepend: cd examples/hello_world && cmake .
-#    build_command: make
-#    branch_pattern: coverity_scan
-#  # these apt sources will be referenced later (by using *name)
-#  apt:
-#    sources: &apt_sources
-#      - ubuntu-toolchain-r-test
-#      - llvm-toolchain-precise-3.5
-#      - llvm-toolchain-precise-3.6
-#      - llvm-toolchain-precise-3.7
-#      - llvm-toolchain-precise-3.8
-#      - llvm-toolchain-precise
-#
-#compiler: clang
-#os: linux
-#
-#matrix:
-#  exclude:
-#    - env: TRAVIS_EMPTY_JOB_WORKAROUND=true
-#
-#  include:
-#    # coverage
-#    - env: COMPILER=g++ COVERALLS_SERVICE_NAME=travis-ci
-#      compiler: gcc
-#      addons:
-#        apt:
-#          packages: ["lcov", "curl"]
-#
+sudo: false
+language: c++
+
+notifications:
+  email:
+    on_success: change
+    on_failure: always
+  # gitter
+  webhooks:
+    urls: https://webhooks.gitter.im/e/10941dd1c67e5e967706
+    on_success: change
+    on_failure: always
+git:
+  depth: 5
+
+# both apt and ccache make the builds slower...
+#cache:
+#  - apt
+#  - ccache
+
+env:
+  global:
+#    - USE_CCACHE=1
+#    - CCACHE_SLOPPINESS=pch_defines,time_macros
+#    - CCACHE_COMPRESS=1
+#    - CCACHE_MAXSIZE=200M
+#    - CCACHE_CPP2=1
+    - CMAKE_OPTIONS_GLOBAL="-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
+  # Workaround for https://github.com/travis-ci/travis-ci/issues/4681
+  # "Defining the build matrix only with matrix.include leads to an additional, unwanted job"
+  matrix:
+    - TRAVIS_EMPTY_JOB_WORKAROUND=true
+
+addons:
+  coverity_scan:
+    # COVERITY_SCAN_TOKEN added as env var in travis project
+    project:
+      name: onqtam/doctest
+    notification_email: vik.kirilov@gmail.com
+    build_command_prepend: cd examples/hello_world && cmake .
+    build_command: make
+    branch_pattern: coverity_scan
+  # these apt sources will be referenced later (by using *name)
+  apt:
+    sources: &apt_sources
+      - ubuntu-toolchain-r-test
+      - llvm-toolchain-precise-3.5
+      - llvm-toolchain-precise-3.6
+      - llvm-toolchain-precise-3.7
+      - llvm-toolchain-precise-3.8
+      - llvm-toolchain-precise
+
+compiler: clang
+os: linux
+
+matrix:
+  exclude:
+    - env: TRAVIS_EMPTY_JOB_WORKAROUND=true
+
+  include:
+    # coverage
+    - env: COMPILER=g++ COVERALLS_SERVICE_NAME=travis-ci
+      compiler: gcc
+      addons:
+        apt:
+          packages: ["lcov", "curl"]
+
 #    # GCC 4.4
 #    - env: COMPILER=g++-4.4
 #      compiler: gcc
@@ -131,14 +131,14 @@
 ##        apt:
 ##          packages: ["g++-6",   "valgrind", "g++-6-multilib",   "libc6-dbg", "libc6-dbg:i386"]
 ##          sources: *apt_sources
-#
-#    # Clang 3.4
-#    - env: COMPILER=clang++ HAS_ASAN_64=true HAS_UBSAN_64=true
-#      addons: &clang
-#        apt:
-#          packages: [             "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386"]
-#          sources: *apt_sources
-#
+
+    # Clang 3.4
+    - env: COMPILER=clang++ HAS_ASAN_64=true HAS_UBSAN_64=true
+      addons: &clang
+        apt:
+          packages: [             "valgrind", "g++-multilib", "libc6-dbg", "libc6-dbg:i386"]
+          sources: *apt_sources
+
 #    # Clang 3.5
 #    - env: COMPILER=clang++-3.5 HAS_ASAN_64=true HAS_UBSAN_64=true
 #      addons: &clang35
@@ -250,104 +250,103 @@
 #    - env: COMPILER=g++
 #      compiler: gcc
 #      os: osx
-#
-#before_install:
-#  - |
-#    if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
-#      brew update
-#      # brew install ccache
-#      brew install valgrind
-#      # cmake
-#      if brew list -1 | grep -q "^cmake\$"; then
-#        brew outdated cmake || brew upgrade cmake
-#      else
-#        brew install cmake
-#      fi
-#      # gcc
-#      if [[ "${COMPILER}" = "g++-4.4" ]]; then
-#        brew install gcc44
-#      fi
-#      if [[ "${COMPILER}" = "g++-4.5" ]]; then
-#        brew install gcc45
-#      fi
-#      if [[ "${COMPILER}" = "g++-4.6" ]]; then
-#        brew install gcc46
-#      fi
-#      if [[ "${COMPILER}" = "g++-4.7" ]]; then
-#        brew install gcc47
-#      fi
-#      if [[ "${COMPILER}" = "g++-4.8" ]]; then
-#        brew outdated gcc48 || brew upgrade gcc48
-#      fi
-#      if [[ "${COMPILER}" = "g++-4.9" ]]; then
-#        brew install gcc49
-#      fi
-#      if [[ "${COMPILER}" = "g++-5" ]]; then
-#        brew install gcc5
-#      fi
-#      if [[ "${COMPILER}" = "g++-6" ]]; then
-#        brew install gcc6
-#      fi
-#    fi
-#  - git submodule update --init --recursive
-#
-#install:
-#  - ${CXX} --version
-##  - export CXX="ccache ${COMPILER}"
-#  - export CXX="${COMPILER}"
-#  - ${CXX} --version
-##  - ccache -s
-#
-#script:
-#  # coverage - do not continue with other build configurations after that
-#  - |
-#    if [[ "${COVERALLS_SERVICE_NAME}" = "travis-ci" ]]; then
-#      cmake ${CMAKE_OPTIONS_GLOBAL} -DCMAKE_BUILD_TYPE=Debug .
-#      make -j2 && make coveralls
-#      exit
-#    fi
-#
-#  # initial run with options
-#  - cmake ${CMAKE_OPTIONS_GLOBAL} ${CMAKE_OPTIONS} .
-#
-#  # debug x86
-#  - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-m32" .
-#  - make clean && make -j2
-#  # valgrind for 32bit under osx fails
-#  - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
-##  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
-#  # debug x64
-#  - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-m64" .
-#  - make clean && make -j2
-#  - cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure
-##  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
-#  # release x86
-#  - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32" .
-#  - make clean && make -j2
-#  # valgrind for 32bit under osx fails
-#  - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
-##  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
-#  # release x64
-#  - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64" .
-#  - make clean && make -j2
-#  - cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure
-##  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
-#
-#  # sanitizers - again 32/64 bit Debug/Release configs through address/undefined sanitizers
-#  - cmake -DTEST_MODE=NORMAL .
-##  - cmake -DTEST_MODE=COMPARE .
-#  # on separate commands because when something fails I want to see which one exactly
-#  - if [[ "${HAS_ASAN_64}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m64 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
-#  - if [[ "${HAS_ASAN_32}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m32 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
-#  - if [[ "${HAS_ASAN_64}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
-#  - if [[ "${HAS_ASAN_32}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
-#  - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m64 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
-#  - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m32 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
-#  - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
-#  - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
-#
-##  - ccache -s
-#
-#after_script:
-#  - cat compile_commands.json
-#
\ No newline at end of file
+
+before_install:
+  - |
+    if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
+      brew update
+      # brew install ccache
+      brew install valgrind
+      # cmake
+      if brew list -1 | grep -q "^cmake\$"; then
+        brew outdated cmake || brew upgrade cmake
+      else
+        brew install cmake
+      fi
+      # gcc
+      if [[ "${COMPILER}" = "g++-4.4" ]]; then
+        brew install gcc44
+      fi
+      if [[ "${COMPILER}" = "g++-4.5" ]]; then
+        brew install gcc45
+      fi
+      if [[ "${COMPILER}" = "g++-4.6" ]]; then
+        brew install gcc46
+      fi
+      if [[ "${COMPILER}" = "g++-4.7" ]]; then
+        brew install gcc47
+      fi
+      if [[ "${COMPILER}" = "g++-4.8" ]]; then
+        brew outdated gcc48 || brew upgrade gcc48
+      fi
+      if [[ "${COMPILER}" = "g++-4.9" ]]; then
+        brew install gcc49
+      fi
+      if [[ "${COMPILER}" = "g++-5" ]]; then
+        brew install gcc5
+      fi
+      if [[ "${COMPILER}" = "g++-6" ]]; then
+        brew install gcc6
+      fi
+    fi
+  - git submodule update --init --recursive
+
+install:
+  - ${CXX} --version
+#  - export CXX="ccache ${COMPILER}"
+  - export CXX="${COMPILER}"
+  - ${CXX} --version
+#  - ccache -s
+
+script:
+  # coverage - do not continue with other build configurations after that
+  - |
+    if [[ "${COVERALLS_SERVICE_NAME}" = "travis-ci" ]]; then
+      cmake ${CMAKE_OPTIONS_GLOBAL} -DCMAKE_BUILD_TYPE=Debug .
+      make -j2 && make coveralls
+      exit
+    fi
+
+  # initial run with options
+  - cmake ${CMAKE_OPTIONS_GLOBAL} ${CMAKE_OPTIONS} .
+
+  # debug x86
+  - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-m32" .
+  - make clean && make -j2
+  # valgrind for 32bit under osx fails
+  - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
+#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
+  # debug x64
+  - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-m64" .
+  - make clean && make -j2
+  - cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure
+#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
+  # release x86
+  - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32" .
+  - make clean && make -j2
+  # valgrind for 32bit under osx fails
+  - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure ; fi
+#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
+  # release x64
+  - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64" .
+  - make clean && make -j2
+  - cmake -DTEST_MODE=VALGRIND . && ctest --output-on-failure
+#  - cmake -DTEST_MODE=COMPARE . && ctest --output-on-failure
+
+  # sanitizers - again 32/64 bit Debug/Release configs through address/undefined sanitizers
+  - cmake -DTEST_MODE=NORMAL .
+#  - cmake -DTEST_MODE=COMPARE .
+  # on separate commands because when something fails I want to see which one exactly
+  - if [[ "${HAS_ASAN_64}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m64 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
+  - if [[ "${HAS_ASAN_32}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m32 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
+  - if [[ "${HAS_ASAN_64}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
+  - if [[ "${HAS_ASAN_32}" = "true" ]];  then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32 -fsanitize=address" .   && make clean && make -j2 && ctest --output-on-failure ; fi
+  - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m64 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
+  - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug   -DCMAKE_CXX_FLAGS="-m32 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
+  - if [[ "${HAS_UBSAN_64}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
+  - if [[ "${HAS_UBSAN_32}" = "true" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m32 -fsanitize=undefined" . && make clean && make -j2 && ctest --output-on-failure ; fi
+
+#  - ccache -s
+
+after_script:
+  - cat compile_commands.json
