extended functional