refactoring away from response dispatcher to horseshoe protocol design