really fix memory leak