Object models (2nd ed.): strategies, patterns, and applications