cleaned code in example 8.5