That's a big question. It really depends on what type of application you are building. If you are building components at all, you generally will group these classes by functionality, and complile each of these groups as separate COM components. There are exceptions to this of course, but it's a good start.