ローカル変数に置き換えているのは何故でしょうか。
(そのまま`callback`、`caller`を使うのではだめか、という意味)
`hoverMessage`だけはそのまま使われています。