clean
return all well except the cigar
it works without memory leak now by using the BStringSet