These are the stages for converting the current C CAM8 library into a general purpose CAM library that supports CAM8 and all future generation machine as well as other CA architectures (like purely software systems). 1) Compile current C CAMlib with a C++ compiler and link with current software suite as a first order consistancy check. 2) Recode C structures as C++ classes with a public interface. Write simple constructor and destructor members. Make current C procedures into members. Write C wrappers that call C++ counterparts. Repeat link test. 3) Design new abstractions: what a cellular automata is and what a cellular automata machine is. These will be the basis for the C++ library. Implemented these abstractions as generic classes that define their interface and subclass then for specific cases. 4) Rewrite C procedures as wrappers to the new C++ classes. There will not be a one-to-one mapping from the new classes to the old C structures. All of the old functionality will however be captured in the new library. These wrappers will use the new classes and methods to provide the same resources and functionality. Might have to design a back-compatibility mode into the C++ classes to aid in this process. 4a) Recompile working example code using the wrapped C++ libraries to verify correctness. 4b) Recode example code in C++ using new C++ library and concepts. 5) Redesign C wrappers discarding the old design concepts and abstractions. These wrappers will simply be C versions of C++ procedures. They will be used in conjunction will packages, like DLD, that need "plain ole unmangled" function names for dynamic linking. NOTE: It is my intension to complete stages 3, 4 and 5 as part of my graduate school research. Stage 3 in particular is likely to be a difficult problem and suitable for advanced research work.