add _open function