```go func (t *terms) eval() (interface{}, error) { t.mu.Lock() defer t.mu.Unlock() for _, term := range t.chain { if term.mods.allow() { return term.do(), nil } } return nil, nil } ``` `return term.do(), nil` causes the following term to not be executed