example implementation of the zic-protocol