public static function render( Chart $chart, array $styleOptions = array() )
    {
        if ( empty( self::$rendererChain ) ) {
            self::pushRenderer( '\Altamira\ChartRenderer\DefaultRenderer' );
        }

        $outputString = '';

        for ( $i = count( self::$rendererChain ) - 1; $i >= 0; $i-- ) 
        {
            $renderer = self::$rendererChain[$i];
            $outputString .= call_user_func_array( array( $renderer, 'preRender' ), array( $chart, $styleOptions ) );
        }
        
        for ( $i = 0; $i < count( self::$rendererChain ); $i++ ) 
        {
            $renderer = self::$rendererChain[$i];
            $outputString .= call_user_func_array( array( $renderer, 'postRender' ), array( $chart, $styleOptions ) );
        }

        return $outputString;
    }