with mechanical (non-Turk) formatting
don't mix free() with delete