treemap: replace with a potentially snapshottable version