refactor for easy releasing