added cnf conversion priciple