public ChartHandle createChart( String name, WorkSheetHandle wsh )
	{
		if( wsh == null )
		{
			// this is a sheetless chart - TODO:
		}
		/* a chart needs a supbook, externsheet, & MSO object in the book stream.
		 * I think this is due to the fact that the referenced series are usually stored
		 * in the fashon 'Sheet1!A4:B6' The sheet1 reference requires a supbook, though the
		 * reference is internal.
		 */

		try
		{
			ObjectInputStream ois = new ObjectInputStream( new ByteArrayInputStream( getPrototypeChart() ) );
			Chart newchart = (Chart) ois.readObject();
			newchart.setWorkBook( getWorkBook() );
			if( getIsExcel2007() )
			{
				newchart = new OOXMLChart( newchart, this );
			}
			mybook.addPreChart();
			mybook.addChart( newchart, name, wsh.getSheet() );
			/* add font recs if nec: for the default chart:
				default chart text fonts are # 5 & 6
            			title # 7             
             			axis # 8			 
            */
			ChartHandle bs = new ChartHandle( newchart, this );
			int nfonts = mybook.getNumFonts();
			while( nfonts < 8 )
			{    // ensure
				Font f = new Font( "Arial", Font.PLAIN, 200 );
				mybook.insertFont( f );
				nfonts++;
			}
			Font f = mybook.getFont( 8 );    // axis title font
			if( f.toString().equals( "Arial,400,200 java.awt.Color[r=0,g=0,b=0] font style:[falsefalsefalsefalse00]" ) )
			{
				// it's default text font -- change to default axis title font
				f = new Font( "Arial", Font.BOLD, 240 );
				bs.setAxisFont( f );
			}
			f = mybook.getFont( 7 );    // chart title font
			if( f.toString().equals( "Arial,400,200 java.awt.Color[r=0,g=0,b=0] font style:[falsefalsefalsefalse00]" ) )
			{
				// it's default text font -- change to default title font 
				f = new Font( "Arial", Font.BOLD, 360 );
				bs.setTitleFont( f );
			}
			bs.removeSeries( 0 );        // remove the "dummied" series
			bs.setAxisTitle( ChartHandle.XAXIS, null );    // remove default axis titles, if any
			bs.setAxisTitle( ChartHandle.YAXIS, null );    //  ""
			return bs;
		}
		catch( Exception e )
		{
			log.error( "Creating New Chart: " + name + " failed: " + e );
			return null;
		}
	}