It won't execute until you use it. Unfortunately putting it in as an argument to a method counts as using it (which happens immediately below).

It does need to be a function.