Rethinking control flow