better handling of hooks, allow skipping missing hooks