open and isOpen methods implementation