c++11 : use nullptr instead of NULL
c++11 : use strongly typed scoped enum and catch couple bugs (marker_helper.hpp)