core: BatchAction can run arbitrary code