conformant with https://github.com/ecomfe/spec/blob/master/javascript-code-style.md
whiteletters and jshint tag
not use arguments in define function