recursor/hooks