public void HookBase(HookPoint hookPoint, HookOrder order, Delegate callback)
 {
     if (initialized)
     {
         hookPoint.HookBase(this, callback);
     }
     else
     {
         lock (desiredHooks)
             desiredHooks.Add(new HookEntry {
                 hookPoint = hookPoint, callback = callback, order = order
             });
     }
 }