Make members private, add ensureOpen method