# Self composition of a function with symbolic variable

I have a function in one variable with a placeholder variable, and would like to find the nth iterate. For example, using:

$f(z) = z^3 + a z^2$, a function in variable $z$ with placeholder coefficient $a$.

then I would like to see

$f(f(z)) = (z^3 + az^2)^3 + a(z^3 + az^2)^2$

However I am struggling to perform this in Sage.

`f(f)`

returns `(a*z^2 + z^3)*z^2 + z^3`

, so it substitutes for $a$ instead of $z$,
and declaring `f(f(z))`

returns the function only in terms of $z$.

How can we self compose functions with a placeholder variable for a coefficient?