more nuking of malloc, and some strdup. I've temporarily implemented my own that uses new[] internally for allocator safety