I guess union isn't such a good idea when dealing with pointers to manually deleted stuff