Change the hook structure to make it a little more flexible.