implementation objects
exercise 19