Taligent's Guide to Designing Programs: Well-Mannered Object-Oriented Design in C++