We've looked at the way CI builds up one 'super-object' to make sure that all the methods and variables you need are automatically available to you without you having to manage them and worry about their scope.
CI makes extensive use of assignment by reference, instantiating one class after another and linking them all together so that you can access them through the 'super-class'. Most of the time, you don't need to know what the 'super-class' is doing, provided that you use CI's 'arrow' notation correctly.
We've also looked at how you can write your own classes and still have access to the CI framework.
Lastly, we looked at a few problems that can arise, particularly if you're not used to OO programs, and suggested a few solutions.