ArrayAccess and Iterator implementation don't seem necessary