add constraints; refine vocabulary