completed lesson 12 - not exactly same as charles version but pretty close