improved AppendOnlyList