Updated material from R. Hatcher.