added IIFE method