Introduce client object instead of open function