public static function addWidget($data, $callback, $settings = NULL)
 {
     // CHECK
     if (!is_array($data)) {
         return false;
     }
     if (!isset($data["id"], $data["title"])) {
         return false;
     }
     if (!is_callable($callback)) {
         return false;
     }
     if ($settings !== NULL && !is_callable($settings)) {
         return false;
     }
     // CHECK CALLBACKs
     if (isset($data["enable"]) && !is_callable($data["enable"])) {
         return false;
     }
     if (isset($data["disable"]) && !is_callable($data["disable"])) {
         return false;
     }
     if (isset($data["uninstall"]) && !is_callable($data["uninstall"])) {
         return false;
     }
     // CREATE WIDGET ARRAY
     $widget = array();
     foreach (self::$validate as $key) {
         $widget[$key] = "";
         if (isset($data[$key])) {
             $widget[$key] = $data[$key];
         } else {
             if ($key == "size") {
                 $widget[$key] = 1;
             }
         }
     }
     $widget["callback"] = $callback;
     $widget["settings_cb"] = $settings;
     // ADD WIDGET
     $add[$data["id"]] = $widget;
     self::$widgets = array_merge(self::$widgets, $add);
     return true;
 }