- implementation of chapter 17