This is the famous "Video Store" example from Martin Fowler's wonderful book, Refactoring. In this hour-long screencast, Uncle Bob takes it apart one step at a time. In the end, he will transform this code from a single large function in a group of otherwise empty classes, into a nicely partitioned object oriented design. Uncle Bob will tear this code apart, and turn it inside out. He'll use a wide-range of refactoring in order to chop the code up and drag the fragments into the classes that need them. In the process the tests will be cleaned up, the Single Responsibility Principle will be enforced, three new classes will be created and populated, and the result will be a much cleaner module. You don't want to miss this one!