weak parent pointers + replacement