https://www.linconstech.com/2019/05/js-part-2-where-to-keep-javascript.html