implementing non conservative