created a more generic enumerator type

Create an enumerator type that is more generic than the iteration enumerator.
The new enumerator is a full object with deletion support.