refactor vfx logic for batching