why retain ?