type correctness++ and consistnecy++