method hook