fix gc issue, but not test comprehensive