refactoring fail