#9 - refactoring