partially complete with exercise 04