Colin Angus Mackay wrote: I would recommend you would be better splitting it up in to logically separate DLLS so you can load and unload them as the game progresses Unloading a .NET assembly isn't an easy thing to do. Even if you load it into a separate AppDomain, this will hurt performance, as all calls will need to go through remoting. The resulting code can be much slower than loading everything on memory. Perl combines all the worst aspects of C and Lisp: a billion different sublanguages in one monolithic executable. It combines the power of C with the readability of PostScript. -- Jamie Zawinski