add isOpener