Object Models: Strategies, Patterns, and Applications (2nd Edition)