extended hooks