tutorial 42
tutorial 43
tidy up code