Hidden LaunchUriAsync behind an interface so we can unit test this thing!