docs: function Sprite( aElement, aProperties, aContent )
  {
      aProperties    = aProperties || {};
      var domElement = "div";
  
      if ( aElement && typeof aElement !== "object" )
      {
          domElement = /** @type {string} */ ( aElement);
      }
  
      /* creates HTML element of requested tag type in the DOM */
  
      if ( !aElement || typeof aElement === "string" )
      {
          this._element = document.createElement( domElement );
      }
      else
      {
          this._element = /** @type {Element} */ ( aElement );
      }
  
      Object.keys( aProperties ).forEach( function( key )
      {
          this._element.setAttribute( key, aProperties[ key ]);
  
      }.bind( this ));
  
  
      if ( aContent )
      {
          this.setContent( aContent );
      }
      this._children = [];
  
      Inheritance.super( this );
  
      this._eventHandler = new EventHandler(); // separate handler for DOM Events
  }