protocol init demo