text: define([], function(){
  	/**
  	 * Utility class which is associated with every Kml file. It allows parts of the KML to ask for the refresh which will happen in the correct time.
  	 * Main usage is in the different modes of refresh in the NetworkLink / Link.
  	 * The refresh listener works in this fashion:
  	 * 	User, which is some of the classes supporting refreshes adds event to the Refresh listener. Event has some content and
  	 * @constructor
  	 * @alias KmlRefreshListener
  	 */
  	var KmlRefreshListener = function(){
  		this.currentActiveEvents = [];
  	};
  
  	/**
  	 * It adds event which should be scheduled later on. It is necessary to store it in a structure, which will return
  	 * what is to be scheduled in a fast manner.
  	 * @param event {KmlRefreshListener.Event} Event which should be part of the Refresh listeners internals.
  	 */
  	KmlRefreshListener.prototype.addEvent = function(event) {
  		var self = this;
  		setTimeout(function(){
  			self.currentActiveEvents.push(event);
  		}, event.time);
  	};
  
  	/**
  	 * All events, which weren't scheduled and should still be.
  	 * @return {KmlRefreshListener.Event[]} It returns all events which should have been scheduled by now.
  	 */
  	KmlRefreshListener.prototype.getActiveEvents = function() {
  		var activeEvents = this.currentActiveEvents.slice();
  		this.currentActiveEvents = [];
  		return activeEvents;
  	};
  
  	/**
  	 * It represents simple Event used inside of the KmlRefreshListener.
  	 * @alias KmlRefreshListener.Event
  	 * @constructor
  	 * @param type {String} type of the event. The consumers decides whether the event is relevant for them based on this type.
  	 * @param payload {Object} Object representing payload of the event. It is possible to schedule event with some additional information
  	 * @param time {Number} Number of milliseconds before the event should occur.
  	 */
  	KmlRefreshListener.Event = function(type, time, payload) {
  		this.type = type;
  		this.payload = payload;
  		this.time = time;
  	};
  
  	return KmlRefreshListener;
  });