cleanup & working 58 in c