Example 4 ready, and IReferenceCounted added