Probably already discussed, but why do we have 2 protocols for 1 task? It seems there is a lot of overlapping between them.