We definitely need some basic smart surrogate type which allows custom deleter (we can't really drop C++03 and switch to ```std::unique_ptr```), so we can handler such things properly with RAII.