diff --git a/appveyor.yml b/appveyor.yml
index e7ab87d..82ce366 100755
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -42,9 +42,6 @@
 - cmake -G "Visual Studio 14 2015 Win64" .
 - cmake --build . --config release
 - cd ..
-  # OpenSSL
-- C:\Python35-x64\python %APPVEYOR_BUILD_FOLDER%\build\appveyor\download_openssl.py
-- ps: Start-Process "Win64OpenSSL.exe" -ArgumentList "/silent /verysilent /sp- /suppressmsgboxes" -Wait
   # Libevent
 - appveyor DownloadFile https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
 - 7z x libevent-2.0.22-stable.tar.gz -so | 7z x -si -ttar > nul
diff --git a/compiler/cpp/CMakeLists.txt b/compiler/cpp/CMakeLists.txt
index 059c3bf..9f7585d 100644
--- a/compiler/cpp/CMakeLists.txt
+++ b/compiler/cpp/CMakeLists.txt
@@ -16,6 +16,7 @@
 # specific language governing permissions and limitations
 # under the License.
 #
+cmake_minimum_required(VERSION 2.8.12)
 
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/thrift/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/thrift/version.h)
 if(MSVC)
@@ -30,24 +31,21 @@
 find_package(FLEX REQUIRED)
 find_package(BISON REQUIRED)
 
+# create directory for thrifty and thriftl
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/thrift/)
+
 # Create flex and bison files and build the lib parse static library
 BISON_TARGET(thrifty ${CMAKE_CURRENT_SOURCE_DIR}/src/thrift/thrifty.yy ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.cc)
 FLEX_TARGET(thriftl ${CMAKE_CURRENT_SOURCE_DIR}/src/thrift/thriftl.ll ${CMAKE_CURRENT_BINARY_DIR}/thrift/thriftl.cc)
 ADD_FLEX_BISON_DEPENDENCY(thriftl thrifty)
 
-# HACK: Work around the fact that bison crates a .hh file but we need a .h file
-add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.h
-                   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.hh ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.h
-                   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.hh
-                   )
-
-set(libparse_SOURCES
+set(parse_SOURCES
     ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.cc
     ${CMAKE_CURRENT_BINARY_DIR}/thrift/thriftl.cc
-    ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.h
+    ${CMAKE_CURRENT_BINARY_DIR}/thrift/thrifty.hh
 )
 
-add_library(libparse STATIC ${libparse_SOURCES})
+add_library(parse STATIC ${parse_SOURCES})
 
 # Create the thrift compiler
 set(compiler_core
@@ -112,6 +110,7 @@
 if(NOT ${WITH_PLUGIN})
     list(APPEND thrift-compiler_SOURCES ${compiler_core})
 endif()
+
 add_executable(thrift-compiler ${thrift-compiler_SOURCES})
 
 if(${WITH_PLUGIN})
@@ -120,7 +119,7 @@
         src/thrift/audit/t_audit.cpp
         src/thrift/generate/t_cpp_generator.cc
     )
-    target_link_libraries(thrift-bootstrap libparse)
+    target_link_libraries(thrift-bootstrap parse)
 
     set(PLUGIN_GEN_SOURCES
         ${CMAKE_CURRENT_BINARY_DIR}/thrift/plugin/plugin_types.h
@@ -153,11 +152,12 @@
     LINK_AGAINST_THRIFT_LIBRARY(thrift-compiler thriftc)
 endif()
 
+set_target_properties(thrift-compiler PROPERTIES RUNTIME_OUTPUT_DIRECTORY bin/)
 set_target_properties(thrift-compiler PROPERTIES OUTPUT_NAME thrift)
 
-target_link_libraries(thrift-compiler libparse)
+target_link_libraries(thrift-compiler parse)
 
-install(TARGETS thrift-compiler DESTINATION "${BIN_INSTALL_DIR}")
+install(TARGETS thrift-compiler DESTINATION bin)
 
 if(${WITH_PLUGIN})
   # Install the headers
diff --git a/compiler/cpp/README.md b/compiler/cpp/README.md
index 90300ac..77cb234 100644
--- a/compiler/cpp/README.md
+++ b/compiler/cpp/README.md
@@ -1,35 +1,47 @@
 # Build compiler using CMake
 
+## build on Unix-like System
+
+### build using cmake
+
 Use the following steps to build using cmake:
 
-    mkdir cmake-build
-    cd cmake-build
-    cmake ..
-    make
-
+```
+mkdir cmake-build
+cd cmake-build
+cmake ..
+make
+```
 
 ### Create an eclipse project
 
-    mkdir cmake-ec && cd cmake-ec
-    cmake -G "Eclipse CDT4 - Unix Makefiles" ..
-    make
+```
+mkdir cmake-ec && cd cmake-ec
+cmake -G "Eclipse CDT4 - Unix Makefiles" ..
+make
+```
 
 Now open the folder cmake-ec using eclipse.
 
 
-### Cross compile using mingw32 and generate a Windows Installer with CPack
+## Cross compile using mingw32 and generate a Windows Installer with CPack
 
-    mkdir cmake-mingw32 && cd cmake-mingw32
-    cmake -DCMAKE_TOOLCHAIN_FILE=../build/cmake/mingw32-toolchain.cmake -DBUILD_COMPILER=ON -DBUILD_LIBRARIES=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ..
-    cpack
+```
+mkdir cmake-mingw32 && cd cmake-mingw32
+cmake -DCMAKE_TOOLCHAIN_FILE=../build/cmake/mingw32-toolchain.cmake -DBUILD_COMPILER=ON -DBUILD_LIBRARIES=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ..
+cpack
+```
 
-## Build on windows
+# Build on windows
 
 ### using Git Bash
+
 Git Bash provides flex and bison, so you just need to do this:
 
-    mkdir cmake-vs && cd cmake-vs
-    cmake -DWITH_SHARED_LIB=off ..
+```
+mkdir cmake-vs && cd cmake-vs
+cmake -DWITH_SHARED_LIB=off ..
+```
 
 ### using Win flex-bison
 
@@ -65,17 +77,23 @@
  Properties -> Build Events -> Pre-Build Events.
 
 From a command prompt:
-> cd thrift/compiler/cpp
-> flex -osrc\thrift\thriftl.cc src\thrift\thriftl.ll
+```
+cd thrift/compiler/cpp
+flex -osrc\thrift\thriftl.cc src\thrift\thriftl.ll
+```
 In the generated thriftl.cc, comment out #include <unistd.h>
 
 Place a copy of bison.simple in thrift/compiler/cpp
-> bison -y -o "src/thrift/thrifty.cc" --defines src/thrift/thrifty.yy
-> move src\thrift\thrifty.cc.hh  src\thrift\thrifty.hh
+```
+bison -y -o "src/thrift/thrifty.cc" --defines src/thrift/thrifty.yy
+move src\thrift\thrifty.cc.hh  src\thrift\thrifty.hh
+```
 
 Bison might generate the yacc header file "thrifty.cc.h" with just one h ".h" extension; in this case you'll have to rename to "thrifty.h".
 
-> move src\thrift\version.h.in src\thrift\version.h
+```
+move src\thrift\version.h.in src\thrift\version.h
+```
 
 Download inttypes.h from the interwebs and place it in an include path
 location (e.g. thrift/compiler/cpp/src).
diff --git a/compiler/cpp/src/thrift/thrifty.yy b/compiler/cpp/src/thrift/thrifty.yy
index fcbc877..e4cae0c 100644
--- a/compiler/cpp/src/thrift/thrifty.yy
+++ b/compiler/cpp/src/thrift/thrifty.yy
@@ -1,3 +1,6 @@
+%code requires {
+#include "thrift/parse/t_program.h"
+}
 %{
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
