some kind of implementation of ARQ