using a new list enumerator

uses underlying list rather than iterating for certain functions (count being the main one)