support multiple hooks