Issue #1 -- refactoring