private function detect()
  {
    $detect   = array();
    $defaults = $this->getDefaults();
    if( $this->isDetected() )
    {
      $detect = json_decode( $_COOKIE[ $this->cookieName ], true );

      if( !is_null( $detect ) )
      {
        // Convert Boolean values from strings
        foreach( $detect as $k => $v )
        {
          if( $v === "false" ) { $detect[ $k ] = $v = false; }
          if( $v === "true"  ) { $detect[ $k ] = $v = true;  }

          // Allow Server Overrides
          if ( $v === false && in_array( $k, DetectDefaults::SERVER ) ) {
            $detect[$k] = ( array_key_exists( $k, $defaults ) ) ? $defaults[ $k ] : $v;
          }
        }
      }
    }
    elseif( !$this->DetectByUserAgent instanceof DetectByUserAgent )
    {
      // Attempt to get from User Agent
      $this->DetectByUserAgent = new DetectByUserAgent();
      $detect                  = $this->DetectByUserAgent->detect();
    }

    // Append Defaults
    return ( !empty( $detect ) ) ? array_merge( $defaults, $detect ) : $defaults;
  }