Wavelets: Reconstruction Filters for 2 Level Decomposition

I am trying to understand the reconstruction part after discrete wavelet decomposition and how do we get approximations and details at various levels. Most textbooks show the complete reconstruction diagrams but not how to get an approximations and details at various levels.

Let us say we started with a s[n] and DWT is performed at level 2. I am following the diagram in Fugal's Conceptual Wavelets. We pass a high pass filter, we get (cD1) and a low pass filter, we get (cA1) on the signal. The cA1 is downsampled by 2, and then passed through the same high-pass and low pass filter giving us detail coefficients at level 2 (cD2), and approximation coefficients (cA2).

How do get approximations A1, A2, and details D1 and D2?

a) If we upsample cD1 by 2 and pass a reconstruction filter on it we will get D1.

b) If we upsample cA2 by 2, and pass a low pass reconstruction filter, we should get A2.

c) If we upsample cD1 by 2, and pass a high pass reconstruction filter, we should get D2.

d) How is A1 obtained? As per the diagram in Fugal (Conceptual Wavelets), he combines the output at level 2, upsamples it again, passes it through a low pass reconstruction filter and gets A1. I believe this could have been done by passing the low pass reconstruction filter directly on cA1 as in point (a-c).

I am asking because MATLAB displays the approximations and details at various levels.

Thanks.