errors corrected and updated