Automorphism of an elementary extension of a structure that moves an undefinable element

I know that the easiest way to show a point is not definable is to find an automorphism of the structure that moves the given point. I've also seen many examples undefinable points that couldn't be moved by any automorphism of the structure. In tackling this problem, I've been trying to construct an arbitrary elementary extension of any structure, $\mathfrak A$, and then showing that there is an automorphism of that structure that moves the point. However, I've had some holes poked in the constructions I've made. If anyone has any advice about my method, or more general knowledge of such a problem, I'd be most appreciative.

Let $\mathfrak A$ be a structure and suppose that $a \in |\mathfrak A|$ is not definable over $\mathfrak A$. Show that there is an elementary extension $\mathfrak B$ of $\mathfrak A$ and an $f \in \operatorname{Aut}(\mathfrak B)$ such that $f(a)\ne a$.

-

Well, if we are to have an automorphism $g$ such that $g(a) \ne a$, we had better have elements that are indiscernible from $a$. But that's easy enough: a compactness argument shows that there is an elementary extension $\mathfrak{A}_0$ of $\mathfrak{A}$ with an element $b$ that is distinct but indiscernible from $a$.
Next, we must enlarge our elementary extension so that it has an automorphism that moves $a$ to $b$. Our main weapon here is the elementary amalgamation theorem. Since $(\mathfrak{A}_0, a) \equiv (\mathfrak{A}_0, b)$, there is an elementary extension $\mathfrak{A}_1$ and a pair of elementary embeddings $f_0, g_0 : \mathfrak{A}_0 \to \mathfrak{A}_1$ such that $f_0(a) = g_0(b)$. Continue inductively: given elementary embeddings $f_i, g_i : \mathfrak{A}_i \to \mathfrak{A}_{i+1}$, construct an elementary extension $\mathfrak{A}_{i+2}$ and elementary embeddings $f_{i+1}, g_{i+1} : \mathfrak{A}_{i+1} \to \mathfrak{A}_{i+2}$ such that $f_{i+1} \circ f_i = g_{i+1} \circ g_i$. Now apply the Tarski–Vaught theorem on the chain of elementary embeddings $$\mathfrak{A} \to \mathfrak{A}_0 \xrightarrow{f_0} \mathfrak{A}_1 \xrightarrow{f_1} \mathfrak{A}_2 \xrightarrow{f_2} \mathfrak{A}_3 \to \cdots$$ to obtain an elementary extension $\mathfrak{B}$ and an elementary embedding $h_0 : \mathfrak{A}_0 \to \mathfrak{B}$. Let $f$ be the composite of $\mathfrak{A} \to \mathfrak{A}_0$ and $h_0$. An abstract nonsense argument shows that there is an automorphism $g : \mathfrak{B} \to \mathfrak{B}$ such that $g(f(a)) = h_0(b)$; in particular, since $a \ne b$ in $\mathfrak{A}_0$, $g(f(a)) \ne f(a)$, as required.
Write $h_i : \mathfrak{A}_i \to \mathfrak{B}$ for the colimit homomorphisms. The automorphism $g$ is the unique homomorphism such that $g \circ h_0 = h_2 \circ g_1 \circ f_0$, $g \circ h_1 = h_2 \circ g_1$, $g \circ h_2 = h_4 \circ g_3 \circ f_2$, $g \circ h_3 = h_4 \circ g_3$, etc.; its inverse is described similarly. (Note that $g$ does not have to be self-inverse!) – Zhen Lin Dec 12 '12 at 0:19