code: function Application(ctx, config) {
  	// validate params
  	if (!ctx && !config) {
  		// both empty
  		ctx = document;
  		config = {};
  	}
  	else if (Utils.isNode(config)) {
  		// reverse order of arguments
  		var tmpConfig = config;
  		config = ctx;
  		ctx = tmpConfig;
  	}
  	else if (!Utils.isNode(ctx) && !config) {
  		// only config is given
  		config = ctx;
  		ctx = document;
  	}
  	else if (Utils.isNode(ctx) && !config) {
  		// only ctx is given
  		config = {};
  	}
  
  	var defaults = {
  		namespace: Module
  	};
  
  	config = Utils.extend(defaults, config);
  
  	/**
  	 * The context node.
  	 *
  	 * @property _ctx
  	 * @type Node
  	 */
  	this._ctx = Utils.getElement(ctx);
  
  	/**
  	 * The configuration.
  	 *
  	 * @property config
  	 * @type Object
  	 */
  	this._config = config;
  
  	/**
  	 * The sandbox to get the resources from.
  	 * The singleton is shared between all modules.
  	 *
  	 * @property _sandbox
  	 * @type Sandbox
  	 */
  	this._sandbox = new Sandbox(this);
  
  	/**
  	 * Contains references to all modules on the page.
  	 *
  	 * @property _modules
  	 * @type Object
  	 */
  	this._modules = {};
  
  	/**
  	 * The next unique module id to use.
  	 *
  	 * @property id
  	 * @type Number
  	 */
  	this._id = 1;
  }
docs: Responsible for application-wide issues such as the creation of modules.
  
  @author Remo Brunschwiler
  @namespace T
  @class Application
  
  @constructor
  @param {Node} ctx
  The context node
  @param {Object} config
  The configuration
   /* global Sandbox, Utils, Module