I agree. While some programmers seem to be able to hold massive quantities of complex spaghetti in their heads, many of us are not. As long as each layer is well designed and the layering itself is well designed, 2 levels is about all you should need to consider at any given time when immersed in the code.