semi/non degenerate working