loop protocol