well, let's have 3 protocol.h, because one is too mainstream.... :(