use the applicable protocol