removed destructor so that free() wouldnt attempt to destroy an invalid pointer. my destructor was being called after free() had already been called