getting some use out of std::function