fixed free bug