model-view-controller (chapter 1 of Python Design Patterns)