redefine gradient