replace boost with c++11(wip)