Iit seems that defining this as a Map is sufficient based on the method invocations. 

Also do we need ordering?  It seems we aren't using anything for the ordering except for the getChildrenIterator, does that need to be returned in the order of the keys?