OOJS
functional JS, need to optimize with partials(handlebars.js)