add input_gradient method