updated to fix errors and add summary of run-once semantics