update run-once logic