handles irregular list of terms