small errors corrected