Cyrano is a thoughtful reimplementation of Lenat's controversial Eurisko program, designed to perform automated discovery and concept formation in a variety of technical fields. The 'thought' in the reimplementation has come from several directions: an appeal to basic principles, which led to identifying constraints of modularity and consistency on the design of discovery systems; an appeal to transparency, which led to collapsing more and more of the control structure into the representation; and an appeal to accountability, which led to the explicit specification of dependencies in the concept formation process. The process of reimplementing Lenat's work has already revealed several insights into the nature of Eurisko-like systems in general; these insights are incorporated into the design of Cyrano. Foremost among these new insights is the characterization of Eurisko-like systems (shich I call inquisitive systems) as search processes which dynamically reconfigure their search space by the formation of new concepts and representations. This insight reveals requirements for modularity and 'consistency' in the definition of new concepts and representations.