avoiding spoiling the global scope