reverse the logic, assume anything other than String is a node to save isNode calls