with generic block-based eval, don't need to make all factors a constraint var