Don't we already have a widget that cleans a vector<WriteOperation*> somewhere? If so, maybe we can re-use that as a value in BulkOperationBuilder and not need to write a destructor?