finally we have real gc algorithm to do