Prevented the enumerator being boxed
Made fields readonly
Corrected implementation of IDisposable