add weak self for class