New protocol

This is a rebased tree. Too much changes and I didn't care splitting properly the commits.