use weakref to File