In the course of my work I see a lot of code. Sample projects, full applications, frameworks, and proofs-of-concept have all crossed my desk at one time or another. In the labs at WWDC I see various bits of code which are giving developers trouble. The source of the project doesn’t seem to matter much; the problem is the same. The problem I see time and again in all of this code is an unclear separation of responsibilities.