Rewritten for more accurate recoginition and different way of extracting information.