added linear-only protocol