Hmm, so now we potentially overwrite another variable named somewhere else, right?

Wouldn't it be better to keep the anonymous function wrapper to allow allow local variables be available in all functions, like username?