wrap in self-executing anonymous function