implementing ch 5 compleat