self-executing function wrapper to prevent conflicts