In this paper, we propose a general way of constructing an NLG system that permits the systematic exploration of the effects of particular system choices on output quality. We call a system developed according to this model a Programmable Instrumented Generator (PIG). Although a PIG could be designed and implemented from scratch, it is likely that researchers would also want to create PIGs based on existing systems. We therefore propose an approach to "instrumenting" an NLG system so as to make it PIG-like. To experiment with the idea, we have produced code to support the "instrumenting" of any NLG system written in Java. We report on initial experiments with "instrumenting" two existing systems and attempting to "tune" them to produce text satisfying complex stylistic constraints.