revamped freeing, now consecutive blocks that are freed are combined in the freelist