new way of backpropagating