more checks and also add unary terms as leaf
make the Join part of the LogicClause in order to make it easier to move it between the sub-clauses