Hooker implementation