added object constructor as IIFE