final conditions refactoring