Put main.js inside a closure to avoid polluting global scope