issue #2:  refactor