A space is $T_0$ if and only if it is homeomorphic to a subpspace of $S^I$ with $S$ the Sierpinski space for some $I$ [Proof Verification] As the title states, I want to check my proof of the following:

Proposition. A topological space $(X, \tau)$ is $T_0$ if and only if there exists a set $I$ such that $(X,\tau)$ is homeomorphic to a subpspace of $S^I$ with $S = (\{0,1\}, \{\emptyset,  \{1\},  \{0,1\}\})$ the Sierpinski space. 

One direction is straightforward: since $S^I$ is a product of $T_0$, it is itself $T_0$ and so is every subspace. In particular, via the homeomorphism of $X$ with the subspace of $S^I$, we get that $X$ is $T_0$.
The other implication is the one I am having doubts about. 
Suppose that $X \neq \emptyset$ (otherwise take $I = \emptyset$) and let $\mathcal{C} = \{f : X \to S  : \text{$f$ is continuous} \}$ which is not empty, for example because $X \to \{1\} \hookrightarrow S$ is continuous. Now, consider
$$
\begin{align*}
\Gamma : & \ X \longrightarrow \prod_{f \in \mathcal{C}}S \\
& x \longmapsto (f(x))_{f \in \mathcal{C}}
\end{align*}
$$
which is continuous because each $\pi_f \Gamma \equiv f$ is continuous. 
This function is injective: if $x \neq y$, since $X$ is $T_0$ without loss of generality there exists an open set $y \in U$ of $X$ with $x \not  \in U$. Thus, 
$$
\Gamma(x)_{\chi_{U}} = \chi_{U}(x) = 0 \neq 1 = \chi_{U}(y) = \Gamma(y)_{\chi_{U}}
$$
and so $\Gamma(x) \neq \Gamma(y)$. 
Moreover, $\Gamma$ is initial: the topology on $X$ is trivially generated by its open sets $U$ which can be expressed as 
$$
U = \{x \in X : \chi_U(x) = 1 \} = \{x : \Gamma(x)_{\chi_U} = 1 \} = \Gamma^{-1}(\prod_{f \neq \chi_U}S \times \{1\})
$$
and so $\Gamma|^{\Gamma(X)} : X \to \Gamma(X)$ is a homeomorphism with $\Gamma(X)$ a subspace of $S^\mathcal{C}$.
Thoughts? If correct, I feel like my argument ended up being rather clumsy so I would appreciate any suggestions on how to improve it. 
 A: You can use the embedding theorem: if $X$ has a family of continuous maps $f_i: X \to X_i$ such that the $f_i$ separate points and they separate points and closed sets, then $e= \nabla_i f_i: X \to \prod_{i \in I} X_i$, defined by $\pi_i \circ (\nabla_i f_i) = f_i$ (or $e(x) = (f_i(x))_{i \in I}$ more intuitively) is an embedding from $X$ into $\prod_{i \in I} X_i$. This is proved in Engelking (2.3.20, as the Diagional Theorem) and Willard (8.16) (and it's implicit in an exercise in Munkres somewhere).
Here the $f_i, i \in I$ separate points iff for all $x_1 \neq x_2 \in X$ there is some $i \in I$ such that $f_i(x_1) \neq f_i(x_2)$.
The $f_i, i \in I$ separate points from closed sets iff for all $x \in X$ and all $C \subseteq X$ closed with $x \notin C$ there exists $i \in I$ such that $f_i(x) \notin \overline{f_i[C]}$.
Now, if $S$ is the Sierpinski space with open $0$, we can define for each $O \subseteq X$ the characteristic function $f_O: X \to S$ defined by $f_O(x) = 0$ for $x \in O$, $f_O(x) =1$ for $x \notin O$ and note that $f_O$ is continuous, as 
$f_O^{-1}[\{0\}] = O$, so the only non-trivial open has open pre-image.
It is then easy to check that the functions $f_O:X \to S$, where $O$ ranges over all open subsets of $X$ (or if we want to be more minimal, over the $O$ in some fixed base $\mathcal{B}$ for the topology of $X$) has the property that it separates points of $X$ if $X$ is $T_0$ and always separates points from closed sets.
The embedding theorem then ensures that a $T_0$ $X$ embeds into some product of Sierpinski spaces.
You're argument is trying to reprove parts of the general embedding theorem in a special case, I think.
The theorem is most often used to see that Tychonoff spaces are embeddable into Tychonoff cubes $[0,1]^I$, which easily leads to the existence of compactifications for all Tychonoff spaces. 
