fix the free bug