it should not be visible outside `with` block