introduced gradient