a more or less working fight loop