Forking Independence

Marker proves in "Model Theory" that for an $\omega$-stable group, $G$, if it is connected then it has a unique generic type. I'm trying to understand the proof.

The proof goes like this: Let $p,q$ be distinct generic types. We will get a contradiction by showing that if $a$ and $b$ are independent realizations of $p$ and $q$, then $ba$ realizes both $p$ and $q$.

Let $G_1$ be an elementary extension of $G$ containing $b$. Let $p_1\in G_1$ be the unique nonforking extension of $p$ and let $a_1$ realize $p_1$. Because $a_1$ and $a$ both realize the unique nonforking extension of $p$ to $G\cup \{b\}$, $$tp(a,b/G)=tp(a_1,b/G).$$ Because $G_1$ is connected and $p_1$ is a generic type of $G_1$ then $\operatorname{Stab}(p_1)=G_1$. Thus, $ba_1$ realizes $p_1$. In particular, $ba_1$ realizes $p$ and hence $ba$ realizes $p$.

I have a few questions:

1. How can we know that $a,b$ exist? For two types $p,q$ how do we know that independent realizations exist?

2. Where did we use the independence? Was it in order to know that there exits a nonforking extension of $p$ to $G\cup \{b\}$? Don't we get that from the $\omega$-stable‍ness?

3. And a different question: if $a\in G$, can we always find a $b\in G$ that is generic over $a$? If so-why?

Thanks, Yatir

1. (this works in stable/simple theories in general if $p,q$ are out of the same S(C)) pick any realisation of $a$ of $p$. now extend $q$ to some non-forking-type $q_1$ out of $S(Ca)$. Now any realisation of $q_1$ gives you $b$ independent of $a$ or in this case vice versa.
2. independence is needed to know that $tp(a,b/G)=tp(a_1,b/G)$, because it is a unique nf-extension (forget b because is in G)