public static function init()
 {
     if (is_null(self::$instance)) {
         self::$instance = new Update_logic();
     }
     return self::$instance;
 }
 private function __construct()
 {
     global $wpdb;
     // load textdomain for translations
     add_action('plugins_loaded', array($this, 'load_our_textdomain'));
     if (function_exists('currheap') && is_a($wpdb, 'safe_wpdb')) {
         // plugin is already configured
         require_once 'lib/class-alternative-heap.php';
         require_once 'lib/class-update-logic.php';
         $this->alt_heap = Alternative_Heap::init();
         $this->update_logic = Update_Logic::init();
         if (false !== currheap()) {
             add_action('plugins_loaded', array($this, 'make_sure_we_are_first'));
         }
     } else {
         // show a notice to prompt the user to configure WP Safe Updates
         // @TODO: offer to do this automatically
         add_action('admin_notices', array($this, 'not_configured_notice'));
     }
     // clear all heaps on uninstall
     register_uninstall_hook(__FILE__, array('Safe_Updates', 'uninstall_cleanup'));
 }