 In each stage (except Stage 3), the object type on the right can be implemented by the simpler object type on the left.The constructions of each stage (except Stage 3) are briefly presented below.There is an article which discusses the details of constructing snapshot objects.