Sync with MHartl and completed Ch 8