Documentation

@Tathanen @jrit @dmaloneycalu @thoughtpalette take a look and let me know if anything looks confusing or needs more documentation
in the js file