refactoring for release