2. add KKT checking