Refactored and switched to 'normalize' approach