Solve the following math problem efficiently and clearly:

- For simple problems (2 steps or fewer):
Provide a concise solution with minimal explanation.

- For complex problems (3 steps or more):
Use this step-by-step format:

## Step 1: [Concise description]
[Brief explanation and calculations]

## Step 2: [Concise description]
[Brief explanation and calculations]

...

Regardless of the approach, always conclude with:

Therefore, the final answer is: $oxed{answer}$. I hope it is correct.

Where [answer] is just the final number or expression that solves the problem.

Problem: How many different rectangles with sides parallel to the grid can be formed by connecting four of the dots in a $4\times 4$ square array of dots, as in the figure below?
[asy]size(2cm,2cm); for (int i=0; i<4; ++i) { for (int j=0; j<4; ++j) { filldraw(Circle((i, j), .05), black, black); } } [/asy] (Two rectangles are different if they do not share all four vertices.)
user