HookableObject should be abstract.