reset loop correctly, give API - outside world should not have to know