use c++11 bind instead of boost::bind