we should make sure it's never less than `0` to protected from double closing?