code: function ( obj, event ) {
  		var quit = false,
  		    a    = array.remove( array.cast( arguments ), 0, 1 ),
  		    o, s, log, list;
  
  		if ( observer.ignore ) {
  			return obj;
  		}
  
  		o = observer.id( obj );
  
  		if ( o === undefined || event === undefined ) {
  			throw new Error( label.error.invalidArguments );
  		}
  
  		if ( observer.silent ) {
  			observer.queue.push( {obj: obj, event: event} );
  		}
  		else {
  			s   = state.getCurrent();
  			log = $.logging;
  
  			array.each( string.explode( event ), function ( e ) {
  				if ( log ) {
  					utility.log(o + " firing " + e );
  				}
  
  				list = observer.list( obj, e, observer.alisteners );
  
  				if ( list.all !== undefined ) {
  					array.each( list.all, function ( i ) {
  						var result = i.fn.apply( i.scope, a );
  
  						if ( result === false ) {
  							quit = true;
  
  							return result;
  						}
  					});
  				}
  
  				if ( !quit && s !== "all" && list[s] !== undefined ) {
  					array.each( list[s], function ( i ) {
  						return i.fn.apply( i.scope, a );
  					});
  				}
  			});
  		}
  
  		return obj;
  	}
docs: Fires an event
  
  @method fire
  @param  {Mixed}  obj   Primitive
  @param  {String} event Event, or Events being fired ( comma delimited supported )
  @return {Mixed}        Primitive