using std::bind to create functor instead of using class