rename `condition` to `constraint`