implement a function for recursive evaluation
implement a function to get unmatch columns