boost::function for better test compatibility