gradient protocol