Wrap everything in an enclosure so we don't leak vars