calling ::set_hook in ::constructor