This first commit only refactors code and does not add any new feature. Refs #2913 (see this ticket for more information about the change) This was SVN commit r15925.