Console = Ember.Object.extend({
	baseConsole: undefined,
	author: undefined,
	tags: [],

	log: function() {
		if(this.baseConsole !== undefined) {

			var args = [];

			for (var i = 0; i < arguments.length; i++) {
				args.push(arguments[i]);
			};

			if(this.tags !== undefined) {
				for (var i = this.tags.length - 1; i >= 0 ; i--) {
					args.unshift("["+ this.tags[i] +"]");
				};
			}
			this.baseConsole.log.apply(this.baseConsole, args);
		}
	},

	addTag: function(tag){
		this.tags.push(tag);
	},

	removeTag: function(tag){
		for (var i = 0; i < this.tags.length; i++) {
			if(this.tags[i] === tag) {
				this.tags.splice(i, 1);
				return;
			}
		};
	},

	flushTags: function(){
		this.tags = [];
		this.tags.push(this.author);
	},

	setAuthor: function(author) {
		this.author = author;
		this.tags.push(this.author);
	}
});

console = Console.create({
	baseConsole: console
});

console.log("m1", console);
console.setAuthor("a1");
console.addTag("t1");
console.addTag("t2");
console.log("m2", console);
console.removeTag("t1");
console.log("m3", console);
console.flushTags();
console.log("m4", console);

console.log("Object instantiated");
@@ -80,16 +80,52 @@
 ags: %5B%5D,
+%0A%09mutedTags: %5B%5D,%0A%09filter: undefined,
 %0A%0A%09log: 
@@ -377,57 +377,378 @@
 %09%09%09%09
-args.unshift(%22%5B%22+ this.tags%5Bi%5D +%22%5D%22);%0A%09%09%09%09%7D;%0A%09%09%09%7D
+if (this.mutedTags.contains(this.tags%5Bi%5D)) %7B return; %7D;%0A%09%09%09%09%09args.unshift(%22%5B%22+ this.tags%5Bi%5D +%22%5D%22);%0A%09%09%09%09%7D;%0A%09%09%09%7D%0A%0A%09%09%09if(this.filter !== %22%22 && this.filter !== undefined) %7B%0A%09%09%09%09for (var i = 0; i %3C args.length; i++) %7B%0A%09%09%09%09%09if(typeof args%5Bi%5D === %22string%22) %7B%0A%09%09%09%09%09%09var regex = new RegExp(this.filter);%0A%09%09%09%09%09%09if(regex.test(args%5Bi%5D)) %7B%0A%09%09%09%09%09%09%09return;%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D;%0A%09%09%09%7D;%0A
 %0A%09%09%09
@@ -1183,16 +1183,313 @@
 uthor);%0A
+%09%7D,%0A%0A%09muteTag: function(tag) %7B%0A%09%09this.mutedTags.push(tag);%0A%09%7D,%0A%0A%09unmuteTag: function(tag) %7B%0A%09%09for (var i = 0; i %3C this.mutedTags.length; i++) %7B%0A%09%09%09if(this.mutedTags%5Bi%5D === tag) %7B%0A%09%09%09%09this.mutedTags.splice(i, 1);%0A%09%09%09%09return;%0A%09%09%09%7D%0A%09%09%7D;%0A%09%7D,%0A%0A%09filterMessages: function(regex) %7B%0A%09%09this.filter = regex;%0A
 %09%7D%0A%7D);%0A%0A
@@ -1766,24 +1766,47 @@
  console);%0A%0A
+%0Aconsole.addTag(%22t3%22);%0A
 console.log(
@@ -1828,8 +1828,70 @@
 iated%22);
+%0A%0Awindow.setInterval(function()%7B%0A%09console.log(%22m5%22);%0A%7D,1000);%0A

add mute tags feature, and message filtering feature