An actually working protocol