retain references long enough