avoid variable shadowing