EG.util = {
	generateGUID: function() {
		return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
			var r = Math.random()*16|0; // jshint ignore:line
			var v = (c == 'x' ? r : (r&0x3|0x8)); // jshint ignore:line
			return v.toString(16);
		});
	},

	/**
	 * @deprecated
	 */
	values: function(obj) {
		return Em.keys(obj).map(function(key) {
			return obj[key];
		});
	}
};
@@ -1,25 +1,169 @@
 EG.
-util = %7B%0A%09
+required = function(methodName) %7B%0A%09return function() %7B%0A%09%09throw new Error('You failed to implement the abstract %60' + methodName + '%60 method.');%0A%09%7D;%0A%7D;%0A%0AEG.
 generate
 GUID
@@ -162,13 +162,14 @@
 rate
-GUID:
+UUID =
  fun
@@ -174,25 +174,24 @@
 unction() %7B%0A
-%09
 %09return 'xxx
@@ -256,17 +256,16 @@
 on(c) %7B%0A
-%09
 %09%09var r 
@@ -310,17 +310,16 @@
 :line%0A%09%09
-%09
 var v = 
@@ -370,17 +370,16 @@
 re:line%0A
-%09
 %09%09return
@@ -395,24 +395,94 @@
 ng(16);%0A
-%09
 %09%7D);%0A
-%09
 %7D
+;%0A%0AEG.util = %7B%0A%0A%09/**%0A%09 * @deprecated%0A%09 */%0A%09generateGUID: EG.generateUUID
 ,%0A%0A%09/**%0A

Add some utility functions.