improve docs, update protocol