Added IIFE wrapper