implement external-browser