Wrapped in IIFE, added require check.