CS242. Reduce Complexity Introduce an intermediate, understandable abstraction Avoid code duplication Support subclassing Hide sequences Hide.