Wrapped in closure to prevent 'use strict' errors on jshint