extended loop