Rename/move
Abstract out repeat-run logic