passes jslint and jshint