all pointers needs to be freed.