add canOpenURL method