Added differential variable, should optimize