refactoring for guard