refactoring shadow