some mistakes corrected