action-specific hooks