hooks should be run on final objects