Action now accepts std::function