observer memory management