- implementation of chapter 18