var System, Loader;
(function (global, globalEval) {

System._define(function () {

	var Deferred, XHR;

	function Loader (parent, options) {
		// TODO: inherit from parent

		this._cache = createCache();
	}

	Loader.prototype = {

		global: global,
		strict: true,

		"eval": function (source) {
			return globalEval(source, this.global);
		},

		evalAsync: function (source, callback, errback) {
			if (!callback) callback = noop;
			try {
				callback(this.eval(source));
			}
			catch (ex) {
				if (arguments.length > 1) errback(ex); else throw ex;
			}
		},

		// TODO...

		load: function (idOrArray, callback, errback) {

		},

		"import": function () {},

		get: function () {},
		has: function () {},
		set: function () {},
		"delete": function () {}

	};

	return init;

	function createCache (seed) {
		// TODO: inherit from seed
		var cache = {};
		return {
			get: function (id) { return cache[id]; },
			set: function (id, thing) { return cache[id] = thing; },
			has: function (id) { return id in cache; }
		};
	}

	function init (deps) {
		Deferred = deps['Deferred'];
		XHR = deps['shim/XMLHttpRequest'];
		return Loader;
	}

});

}(
	typeof global == 'object' ? global : this.window || this.global || {},
	function () { return (1, eval).call(arguments[1], arguments[0]); }
));
@@ -81,16 +81,22 @@
  %7B%0A%0A%09var
+ init,
  Deferre
@@ -100,17 +100,39 @@
 rred
-, XHR;%0A%0A%09
+;%0A%0A%09init = setDeps;%0A%0A%09Loader = 
 func
@@ -194,16 +194,25 @@
  parent%0A
+%09%09init();
 %0A%09%09this.
@@ -237,16 +237,17 @@
 he();%0A%09%7D
+;
 %0A%0A%09Loade
@@ -806,20 +806,22 @@
 %09return 
-init
+Loader
 ;%0A%0A%09func
@@ -1078,18 +1078,17 @@
 ion 
-init (d
+setD
 eps
+ (
 ) %7B%0A
@@ -1100,22 +1100,37 @@
 erred = 
-deps%5B'
+System.get('beck/lib/
 Deferred
@@ -1134,66 +1134,49 @@
 red'
-%5D
+)
 ;%0A%09%09
-XHR = deps%5B'shim/XMLHttpRequest'%5D;%0A%09%09return Loader;%0A%09
+init = noop;%0A%09%7D%0A%0A%09function noop () %7B
 %7D%0A%0A%7D

Use System.get() to get deps