refs #3747 refactoring logic