Updated protocol implementation and docs