Added Module Pattern to go straight into CommonJS / AMD