almost everything corrected