This framework was originally developed around 25 years ago during the era of enterprise systems engineering to solve complex integration challenges—due mostly to 32 to 64 bits conversion back then, as well as attempts to make OLE containers more stable to crashes in components. Since then, the Windows operating system has evolved significantly; however, developers still face persistent hurdles and interest in running 32-bit and 64-bit COM components interchangeably, as well as seamlessly running in-process components out-of-process (or vice versa) to protect container applications from crashes.