text: removeChildren = function(dom) {
    //removes all children of dom
    while (dom.firstChild) {
      dom.removeChild(dom.firstChild);
    };
  };
  
  function Shuffle(o) {
    for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
    return o;
  };
  
  
  var SVGNS = "http://www.w3.org/2000/svg";
  
  if (!Array.prototype.last) {
    Array.prototype.last = function() {
      return this[this.length - 1];
    };
  };
  
  colorGenerator = function(r = 0, g = 0, b = 0, alpha = 1) {
    return `rgba(${Math.floor(r)}, ${Math.floor(g)}, ${Math.floor(b)}, ${alpha})`;
  }