open question: do we need to keep the condition "terms.length ===1" here after all ?