Checked in after refactoring.