change build system do cmake
add more documentation