Working, supports results can be passed back to initial caller