exercise 3.3
exercise 3.4 - and cleaned it up pulling out things into different objects.