code: function( contentItemOrConfig, parent ) {
  		if( !contentItemOrConfig ) {
  			throw new Error( 'No content item defined' );
  		}
  
  		if( lm.utils.isFunction( contentItemOrConfig ) ) {
  			contentItemOrConfig = contentItemOrConfig();
  		}
  
  		if( contentItemOrConfig instanceof lm.items.AbstractContentItem ) {
  			return contentItemOrConfig;
  		}
  
  		if( $.isPlainObject( contentItemOrConfig ) && contentItemOrConfig.type ) {
  			var newContentItem = this.createContentItem( contentItemOrConfig, parent );
  			newContentItem.callDownwards( '_$init' );
  			return newContentItem;
  		} else {
  			throw new Error( 'Invalid contentItem' );
  		}
  	}
docs: Takes a contentItem or a configuration and optionally a parent
  item and returns an initialised instance of the contentItem.
  If the contentItem is a function, it is first called
  
  @packagePrivate
  
  @param   {lm.items.AbtractContentItem|Object|Function} contentItemOrConfig
  @param   {lm.items.AbtractContentItem} parent Only necessary when passing in config
  
  @returns {lm.items.AbtractContentItem}