What's the reasoning behind this define / undefine maneuvers?