Refactoring to support future changes