Revised with NEG funct