setContainer(container) {
        if(!container) {
            let container = document.createElement("div");
            container.setAttribute("id", "curtains-canvas");
            document.body.appendChild(container);
            this.container = container;
            if(!this.production) throwWarning('Curtains: no valid container HTML element or ID provided, created a div with "curtains-canvas" ID instead');
        }
        else {
            if(typeof container === "string") {
                container = document.getElementById(container);

                if(!container) {
                    let container = document.createElement("div");
                    container.setAttribute("id", "curtains-canvas");
                    document.body.appendChild(container);
                    this.container = container;
                    if(!this.production) throwWarning('Curtains: no valid container HTML element or ID provided, created a div with "curtains-canvas" ID instead');
                }
                else {
                    this.container = container;
                }
            }
            else if(container instanceof Element) {
                this.container = container;
            }
        }

        this._initCurtains();
    }
Set up our Curtains container and start initializing everything
     Called on Curtains instancing if a params container has been provided, could be call afterwards else
     Useful with JS frameworks to init our Curtains class globally and then set the container in a canvas component afterwards to fully instantiate everything

     params:
     @container (HTML element or string): the container HTML element or ID that will hold our canvas
*