$G$ a group s.t. every non-identity element has order 2. If $G$ is finite, prove $|G| = 2^n$ and $G \simeq C_2 \times C_2 \times\cdots\times C_2$ Let $G$ be a group s.t. every non-identity element has order 2. If $G$ is finite, prove $|G| = 2^n$ and $G \simeq C_2 \times C_2 \times\cdots\times C_2$
I know G is abelian since $ab = (ab)^{-1} = b^{-1} a^{-1} = ba$ for all non-trivial $a,b \in G$ so I have several questions remaining: 


*

*How do I prove $|G| = 2^n$? I'd like to say we use induction to prove this but I'm at a loss as to where I would start.

*Why is $G \simeq C_2 \times C_2 \times\cdots\times C_2$?


I've read several answers to question similar to this yet unfortunately most of them involve Galois Fields and vector spaces, both concepts I'm unfamiliar with. I'd greatly appreciate an intuitive proof.
 A: Suppose $G$ is finite, then we have $|G|= \prod_{i=1}p_{i}^{r_{i}}$. By the hypothesis and Cauchy's theorem, $p_{i} = 2$. So that $|G| = 2^{n}$. 
Let $x, y \in G$, then $xy = 1$ or $(xy)^{2} = 1$ by the hypothesis and so we have $xy = yx$ since $g^{2} = 1 \implies g = g^{-1}$. Hence $G$ is an abelian group.
Write $G = \{g_{1}, g_{2}, ..., g_{n}\}$ where $|g_{i}| = d_{i}$. Let $H = \prod_{i=1}^{n}\mathbb{Z} \backslash d_{i}\mathbb{Z}$. 
Then $\phi: H \rightarrow G: \phi (g_{1}, ..., g_{n}) = \prod_{i=1}^{n}g_{i}^{k_{i}}$ is a well-defined surjective map since $G$ is abelian but by order consideration, $\ker \phi  = \{1 \}$. So we have the desired isomorphism since $d_{i} = 2$.  
A: (1) $G$ is Abelian because $x y=x(x y)^2y=x x y x y y=x^2(y x)y^2=y x.$.. (2) For non-negative integer $n$, let $H_n$ denote a subgroup of $G$ with $|H_n|=2^n. $ It is easily seen that if $H_n\ne G$ and $x\in G\backslash H_n$ then $H_{n+1}=H_n\cup x H_n$ is a subgroup of $G$ with $|H_{n+1}|=2^{n+1}$....(3) Now $H_0=\{1\}$ exists. Take a sequence $x_0,...,x_n$ in $G$ and a sequence $H_0,...,H_n$, with $x_0=1$, $H_0=\{1\}$, such that for $0\leq i< n$ we have $x_{i+1}\not\in H_i$ and $H_{i+1}=H_i\cup x_{i+1}H_i,$ and where $n$ is as large as possible. By part (2) we must have $H_n=G$. This gives us $|G|=2^n$....(4) In the non-trivial case $n\geq 1$, observe that $H_n$ (which is $G$) is isomorphic to $\prod_{j=0}^{j=n-1}(H_{n-j}/H_{n-j-1})$ and each member of this product is a two-element group. 
