Added IIFEs around js files to avoid polluting global namespace