Several procedures have been proposed to decide which species and reactions should be included in a kinetic simulation. One approach is to choose important reaction sequences by analogy to kinetic models for other systems. For example, if one has a model for the pre-ignition chemistry of one alkane, one can reasonably predict the important reactions in the pre-ignition chemistry of other alkanes . This procedure of modeling-by-analogy is used by many expert kineticists as they begin to model a new system, and has been codified in some software packages that automatically generate kinetic models. Another idea is to assume low conversion of the reactant, so its reactions will dominate, and subsequent reactions of the initial products will be less important. This approach is used in software packages such as NetGen , and is a good approach for modeling systems where the initial build-up of small concentrations of by-products is harmful, e.g. shelf-stability of drugs. Yet another concept is to systematically generate every possible reaction from the dark species in Fig. , and then numerically test all the gray reactions, pruning away reactions which are calculated to be too slow to be important (as judged by some error tolerance). This "rate-based" approach is used in the Reaction Mechanism Generator (RMG). The rate-based approach has the advantage of being more general than methods that assume knowledge of analogous system, or low conversion, and it has been impressively successful in a handful of cases. However, it has the disadvantage of being slower and more memory-intensive than those approaches, since it requires calculations of a very large number of reaction rates (for all the gray "edge" reactions in Fig. as well as the "core" reactions shown in black). These rate calculations require calculations of the concentrations of each species (e.g. by solving the simulation with the current version of the reaction mechanism). So special work has been done to try to improve the computational efficiency of the rate-based approach , but even with those improvements it can be challenging to build a reaction network that achieves a user's error tolerance.