hoisting and declarations