fix free bug