refactoring some __weak objects