Rewrite for exam preparation and type information added.