add the interface for Protocol