checkpoint 2 -- still does not compile