customDraw() {
        var ctx = simulationArea.context;
        const xx = this.x;
        const yy = this.y;
        ctx.strokeStyle = colors['stroke'];
        ctx.fillStyle = colors['fill'];
        ctx.lineWidth = correctWidth(3);
        ctx.beginPath();
        moveTo(ctx, 30, 10, xx, yy, this.direction);
        lineTo(ctx, 30, -10, xx, yy, this.direction);
        lineTo(ctx, 10, -40, xx, yy, this.direction);
        lineTo(ctx, -30, -40, xx, yy, this.direction);
        lineTo(ctx, -30, -20, xx, yy, this.direction);
        lineTo(ctx, -20, -10, xx, yy, this.direction);
        lineTo(ctx, -20, 10, xx, yy, this.direction);
        lineTo(ctx, -30, 20, xx, yy, this.direction);
        lineTo(ctx, -30, 40, xx, yy, this.direction);
        lineTo(ctx, 10, 40, xx, yy, this.direction);
        lineTo(ctx, 30, 10, xx, yy, this.direction);
        ctx.closePath();
        ctx.stroke();

        if ((this.hover && !simulationArea.shiftDown) || simulationArea.lastSelected === this || simulationArea.multipleObjectSelections.contains(this)) { ctx.fillStyle = colors["hover_select"]; }
        ctx.fill();
        ctx.stroke();

        ctx.beginPath();
        ctx.fillStyle = 'Black';
        ctx.textAlign = 'center';

        fillText4(ctx, 'B', -23, 30, xx, yy, this.direction, 6);
        fillText4(ctx, 'A', -23, -30, xx, yy, this.direction, 6);
        fillText4(ctx, 'CTR', -10, -30, xx, yy, this.direction, 6);
        fillText4(ctx, 'Carry', -10, 30, xx, yy, this.direction, 6);
        fillText4(ctx, 'Ans', 20, 0, xx, yy, this.direction, 6);
        ctx.fill();
        ctx.beginPath();
        ctx.fillStyle = 'DarkGreen';
        fillText4(ctx, this.message, 0, 0, xx, yy, this.direction, 12);
        ctx.fill();
    }
@memberof ALU
function to draw element