Refactoring to use weak