fix retain cycle
checkout