To reduce costly development errors it is important to test and iterate a design early, before anyone gets invested in the design and before spending time writing code. Since users can’t really respond to design documents, paper prototypes test functional concepts by presenting the functions as understandable user interface elements. The design team tests these prototypes with users in their workplace, replaying real work events in the proposed system. When users discover problems, they and the designers redesign the prototype and thus the low level requirements together to fit their needs. Subsequent testing rounds with lightweight running prototypes result in a more stable design and so can be conducted remotely with increasingly detailed interaction, visual or industrial design models.