Added OnAddItem, OnDeleteItem
Name  property is ReadOnly
implement ItemCollection
Added unit tests
cleanup