more generic code with DelayedProcessor