An interface and partial implementation for this extension:
function Template(dispatch) {

		//
		// Properties (GET/SET):
		//
		this.constructor.prototype.__defineGetter__("bool", dispatch.getBoolean);
		this.constructor.prototype.__defineSetter__("bool", dispatch.setBoolean);
		this.constructor.prototype.__defineGetter__("string", dispatch.getString);
		this.constructor.prototype.__defineSetter__("string", dispatch.setString);
		this.constructor.prototype.__defineGetter__("integer", dispatch.getInteger);
		this.constructor.prototype.__defineSetter__("integer", dispatch.setInteger);
		
		//
		// Functions:
		//
		this.constructor.prototype.add = function(first, second) {
			return dispatch.add(first, second);
		};
		this.constructor.prototype.log = function(msg) {
			return dispatch.log(msg);
		};
		
		//
		// Callbacks:
		//
		this.constructor.prototype.onEvent = function(callback) {
			return dispatch.onEvent(callback);
		};

	}