Protocol design

Thanks to @taarushv for this link.