replaced weak with unsafe_unretained to support < 10.8