issue #3: Refactoring.