hmm, one issue is current code will not be optimal? because people are writing it without `_final`, and resources will be not freed. Could the new one be `_nonfinal` or some better wording?