shuffling around hook invocations