refactor
release if not acquired