add open function