Our goal is to make combinatorial problem-solving technology available to users who have no formal training in AI or OR. To achieve this aim, we have built a system, VICSS (Visual Constraint Specification System) that enables users to specify problems graphically. To simplify the specification process, VICSS relles heavily on progra~nming-by-demonstration (PBD) techniques. We believe, however, that the key to making PBD succeed for our application is to constrain the generalization process so that the system makes only "simple", easy-to-understand generalizations. In this paper we describe several design decisions that enable us to achieve this end, and illustrate them in the context of an extended example.