small errors modified