shadowing outer variable