Refactoring - stage 3