I'm trying to write a set notation in multiple lines, for example:

This is my code to get it.
\usepackage{amsmath}
\begin{document}
...
\begin{align*}
Lookup &= \{\, \langle C, A.m, B.m \rangle \mid & \textrm{class $A$ contains virtual method $m$, $C \le^{*} B \le^{*} A$}, \\
& & \textrm{class $B$ contains virtual method $m$}, \\
& & \textrm{there is no class $B^{'}$ tht contains method $m$ such that $C \le^{*} B^{'} <^{*} B$}
\, \}\\
LC &= \{\, \langle a, b \rangle \mid \langle a, b, c \rangle \in ...\, \}
\end{align*}
However, I can't make the second & aligned correctly.

What might be wrong?
ADDED
I replaced the second & with && to get the lines aligned correctly.
However, I see too much space between the $\mid$ and $class A$. Is there a way to control the gap between them?
ADDED2
With Barbara's help, this is my working code.
\usepackage{amsmath}
\begin{align*}
\textit{Lookup} &= \{\, \langle C, A.m, B.m \rangle \mid {}
\begin{aligned}[t] &\text{class $A$ contains ...}, \\
& \text{class $B$ contains ...}, \\
& \text{there is no class $B'$ that contains ...} \, \}
\end{aligned}\\
\rlap{LC}\hphantom{\textit{Lookup}}
&= \{\, \langle a, b \rangle \mid \langle a, b, c \rangle \in ...\, \}
\end{align*}



&&for the second alignment point, so that becomesleft aligned instead ofright aligned. – Peter Grill Nov 14 '12 at 21:31\rlap{$\displaystyle ... $}. – Peter Grill Nov 14 '12 at 21:41B^{'}is wrong; the correct way to input it is simplyB'. – egreg Nov 14 '12 at 22:31