protocol todo