var methodNames = ['fill', 'stroke', 'save', 'restore', 'lineTo', 'moveTo', 'arc', 'translate', 'rotate', 'rect', 'beginPath', 'closePath', 'clearRect'];
var setterNames = ['fillStyle', 'strokeStyle', 'font', 'globalAlpha', 'lineWidth'];

var Leinwand = function Leinwand(canvas) {
  if (!(this instanceof Leinwand)) {
    return new Leinwand(color)
  }

  this._canvas = canvas;
  this._ctx = canvas.getContext('2d');
};

methodNames.forEach(function(el) {
  Leinwand.prototype[el] = function() {
    this._ctx[el].apply(this._ctx, arguments);
    return this;
  };
});

setterNames.forEach(function(el) {
  Leinwand.prototype[el] = function(s) {
    this._ctx[el] = s;
    return this;
  };
});

//Aliases
Leinwand.prototype.lt = Leinwand.prototype.lineTo;
Leinwand.prototype.mt = Leinwand.prototype.moveTo;
Leinwand.prototype.opacity = Leinwand.prototype.globalAlpha;


//Custom methods
Leinwand.prototype.clear = function clear() {
  this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
  return this;
};

module.exports = Leinwand;

@@ -691,16 +691,512 @@
 %7D;%0A%7D);%0A%0A
+//Custom methods%0ALeinwand.prototype.clear = function clear() %7B%0A  this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);%0A  return this;%0A%7D;%0A%0A//Getters%0ALeinwand.prototype.getContext = function getContext() %7B%0A  return this._ctx;%0A%7D;%0A%0ALeinwand.prototype.getCanvas = function getCanvas() %7B%0A  return this._canvas;%0A%7D;%0A%0ALeinwand.prototype.getWidth = function getWidth() %7B%0A  return this._canvas.width;%0A%7D;%0A%0ALeinwand.prototype.getHeight = function getHeight() %7B%0A  return this._canvas.height;%0A%7D;%0A%0A
 //Aliase
@@ -1365,161 +1365,8 @@
 a;%0A%0A
-%0A//Custom methods%0ALeinwand.prototype.clear = function clear() %7B%0A  this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);%0A  return this;%0A%7D;%0A%0A
 modu

Add getters for width, height, context and canvas