add PerformOnce