class TYTD.Event {
	private _events = [];
	
	public operator+(e)
	{
		if (!_events.Contains(e))
		{
			this._events.Add(e);
		}
		return this;
	}
	
	public operator-(e)
	{
		this._events.Remove(e);
		return this;
	}
	
	
	public Invoke($$args)
	{
		each(var e : this._events)
		{
			e.Call(args);
		}
	}
}