Add abstract data file class, implement IteratorAggregate, ArrayAccess