Why is `open` private and `close` protected? Unify it.