modified some protocol