Refactored to expose enumerators to access semantics.