function bigwheel( settingsFunc ) {

	if( !( this instanceof bigwheel ) )
		return new bigwheel( settingsFunc );

	this.settingsFunc = settingsFunc;
}
/**
 * When instantiating bigwheel you must pass in a setup function.
 *
 * In this function you may do any preparation that must be done for your
 * application such as creating a global Canvas element or something else.
 *
 * The setup function must either return a settings object for bigwheel or
 * this function must receive a callback which you will call with the settings
 * object. Furthermore you can pass back a promise from this settings function
 * which will receive the settings object.
 *
 * The following documents what can be passed in the settings object:
 * ```javascript
 * {
 * 	///// REQUIRED /////
 *
 * 	// routes defines all the routes for your website it can also define a 
 * 	// 404 section which will be opened if the route is incorrect
 *  routes: {
 *
 * 		'/': someSection,
 * 		'/someOther': someOtherSection,
 * 		'404': sectionFourOhFour
 *  },
 *  
 *  ///// OPTIONAL /////
 *  initSection: preSection, // this could be a section that is run always
 *  						 // before routes are even evaluated. This is
 *  						 // usefulf for site preloaders or landing pages
 *  						 // such as age verification (something the user
 *  						 // must see)
 * 
 * 	autoResize: true, // by default this value is true. When this value is
 * 					  // true a resize listener is added to the window
 * 					  // whenever the window changes size it's width and
 * 					  // height is passed to all instantiated sections
 * 	postHash: '#!', // this string is appended before the route. 
 * 					// by default it's value is '#!'
 * }
 * ```
 * 
 * @class bigwheel
 * @param  {Function} settingsFunc This settings function will be used to
 * initialize bigwheel.
 */
When instantiating bigwheel you must pass in a setup function.
In this function you may do any preparation that must be done for your
application such as creating a global Canvas element or something else.

The setup function must either return a settings object for bigwheel or
this function must receive a callback which you will call with the settings
object. Furthermore you can pass back a promise from this settings function
which will receive the settings object.

The following documents what can be passed in the settings object:
```javascript
{
REQUIRED

routes defines all the routes for your website it can also define a
404 section which will be opened if the route is incorrect
routes: {



OPTIONAL
initSection: preSection, // this could be a section that is run always
before routes are even evaluated. This is
usefulf for site preloaders or landing pages
such as age verification (something the user
must see)

true, // by default this value is true. When this value is
true a resize listener is added to the window
whenever the window changes size it's width and
height is passed to all instantiated sections
postHash: '#!', // this string is appended before the route.
by default it's value is '#!'
}
```

@class bigwheel
@param  {Function} settingsFunc This settings function will be used to
initialize bigwheel.
When instantiating bigwheel you must pass in a setup function . In this function you may do any preparation that must be done for your application such as creating a global Canvas element or something else . The setup function must either return a settings object for bigwheel or this function must receive a callback which you will call with the settings object . Furthermore you can pass back a promise from this settings function which will receive the settings object . The following documents what can be passed in the settings object : ` ` ` javascript { REQUIRED routes defines all the routes for your website it can also define a 404 section which will be opened if the route is incorrect routes : { OPTIONAL initSection : preSection // this could be a section that is run always before routes are even evaluated . This is usefulf for site preloaders or landing pages such as age verification ( something the user must see ) true // by default this value is true . When this value is true a resize listener is added to the window whenever the window changes size it ' s width and height is passed to all instantiated sections postHash : ' #! ' // this string is appended before the route . by default it ' s value is ' #! ' } ` ` ` @class bigwheel @param { Function } settingsFunc This settings function will be used to initialize bigwheel .
function bigwheel( settingsFunc ) {
	if( !( this instanceof bigwheel ) )
		return new bigwheel( settingsFunc );
	this.settingsFunc = settingsFunc;
}
function bigwheel ( settingsFunc ) { if ( ! ( this instanceof bigwheel ) ) return new bigwheel ( settingsFunc ) ; this . settingsFunc = settingsFunc ; }
When instantiating bigwheel you must pass in a setup function.
When instantiating bigwheel you must pass in a setup function .