Moved over to using std::function