extend protocol

extend