wrapped custom element in iife to keep variables from leaking out