Working in FractInt really makes me miss objects. C++ is backwards compatible with C as long as you avoid variables called 'new' and so-on. I've already refactored the identifiers that conflict with C++ keywords not present in C. So what I'm thinking is that I'll just take all the *.c files on the branch and save them as *.cpp. Then address any compile errors or warnings that might result. It will still be a gigantic 1990-style C program, but now when we add new code we can add it as objects. Existing code can be incrementally refactored(*) into objects. This is the approach I intend to take on the source. It won't happen overnight. But slowly, gradually, the code will move to objects and interfaces with locally encapsulated state that will allow the engine to be repurposed in many, many ways... I don't care so much if the DOS UI dies, but I want to see the parameter file stuff, the formula stuff and the fractal types live on (and probably some other stuff too, but I'm not trying to make an exhaustive list here). Any thoughts are welcome... (*) I should be specific with the word "refactor" here as it can have just the English language intuitive meaning of re+factor, but in software engineering it means something specific. A refactoring is a change to the structure of the code that preserves the behavior of the code to all callers (implementation may change, but behavior is preserved). For examples of specific code transformations that are considered refactorings, take a look at <http://www.refactoring.com/> and browse the "Catalog" link at the top of the page. So how do you know if the behavior has been preserved across the change? Unit tests. That might sound like a bunch of extra work, but reading the book "Working Effectively with Legacy Code" by Michael Feathers has convinced me it can be done to an existing body of code like FractInt in an incremental fashion. <http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/> <http://www.objectmentor.com/resources/books.html> -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>