Major structural change. Now we implement itterable instead of holding data internally.