fixbug: retain cycle, memory leak crash